西门子6ES7321-1CH00-0AA0技术参数
简单的结构使得S7-300使用灵活且易于维护:
安装模块:
只需简单地将模块挂在安装导轨上,转动到位然后锁紧螺钉。
集成的背板总线:
背板总线集成到模块里。模块通过总线连接器相连,总线连接器插在外壳的背面。
模块采用机械编码,更换极为容易:
更换模块时,必须拧下模块的固定螺钉。按下闭锁机构,可轻松拔下前连接器。前连接器上的编码装置防止将已接线的连接器错插到其他的模块上。
现场证明可靠的连接:
对于信号模块,可以使用螺钉型、弹簧型或绝缘刺破型前连接器。
TOP连接:
为采用螺钉型接线端子或弹簧型接线端子连接的1线-3线连接系统提供预组装接线另外还可直接在信号模块上接线。
规定的安装深度:
所有的连接和连接器都在模块上的凹槽内,并有前盖保护。因此,所有模块应有明确的安装深度。
无插槽规则:
信号模块和通信处理器可以不受限制地以任何方式连接。系统可自行组态。
扩展
若用户的自动化任务需要8个以上的SM、FM或CP模块插槽时,则可对S7-300(除CPU 312和CPU 312C外)进行扩展:
*控制器和3个扩展机架可连接32个模块:
总共可将3个扩展装置(EU
在本块中是一一对应的,在temp变量声明后,其后会生成一个地址,此地址就是系统自己分配的,对应本块的L区。参加下图
此变量只在当前块应用,当块执行的时候它被用来临时存储一些数据,当块退出后这些值也将丢失。因此在plc扫描运行时,临时变量不能存储。
它的使用规则是使用前先赋值,不能用于记忆保持,也不能用于边沿存储。
)连接到*控制器(CC)。每个CC/EU可以连接八个模块。
通过接口模板连接:
每个CC/EU都有自己的接口模块。在*控制器上它总是被插在CPU旁边的插槽中,并自动处理与扩展装置的通信。
通过IM 365扩展:
1个扩展装置扩展距离为1米;电源电压也通过扩展装置提供。
通过IM 360/361扩展:
3个扩展装置,CC与EU之间以及EU与EU之间的距离为10m。
单独安装:
对于单独的CC/EU,也能够以更远的距离安装。两个相邻CC/EU或EU/EU之间的距离:长达10m。
灵活的安装选项:
CC/EU既可以水平安装,也可以垂直安装。这样可以限度满足空间要求。
通信
S7-300具有不同的通信接口:
连接AS-Interface、PROFIBUS和PROFINET/工业以太网总线系统的通信处理器。
用于点到点连接的通信处理器
多点接口(MPI),集成在CPU中;
是一种经济有效的方案,可以同时连接编程器/PC、人机界面系统和其它的SIMATIC S7/C7自动化系统。
PROFIBUS DP进行过程通信
SIMATIC S7-300通过通信处理器或通过配备集成PROFIBUS DP接口的CPU连接到PROFIBUS DP总线系统。通过带有PROFIBUS DP主站/从站接口的CPU,可构建一个高速的分布式自动化系统,并且使得操作大大简化。
从用户的角度来看,PROFIBUS DP上的分布式I/O处理与集中式I/O处理没有区别(相同的组态,编址及编程)
以下设备可作为主站连接:
SIMATIC S7-300
(通过带PROFIBUS DP接口的CPU或PROFIBUS DP CP)
SIMATIC S7-400
(通过带PROFIBUS DP接口的CPU或PROFIBUS DP CP)
SIMATIC C7
(通过带PROFIBUS DP接口的C7或PROFIBUS DP CP)
SIMATIC S5-115U/H、S5-135U和S5-155U/H,带IM 308
SIMATIC 505
出于性能原因,每条线路上连接的主站不得超过2个。
以下设备可作为从站连接:
ET 200分布式I/O设备
S7-300,通过CP 342-5
CPU 313C-2 DP,CPU 314C-2 DP,CPU 314C-2 PN/DP,CPU 315-2 DP,CPU 315-2 PN/DP,CPU 317-2 DP,CPU 317-2 PN/DP and CPU 319-3 PN/DP
C7-633/P DP,C7-633 DP,C7-634/P DP,C7-634 DP,C7-626 DP,C7-635,C7-636
现场设备
虽然带有STEP 7的编程器/PC或OP是总线上的主站,但是只使用MPI功能,另外通过PROFIBUS DP也可部分提供OP功能。
通过PROFINET IO进行过程通信
SIMATIC S7-300通过通信处理器或通过配备集成PROFINET接口的CPU连接到PROFINET IO总线系统。通过带有PROFIBUS接口的CPU,可构建一个高速的分布式自动化系统,并且使得操作大大简化。
从用户的角度来看,PROFINET IO上的分布式I/O处理与集中式I/O处理没有区别(相同的组态,编址及编程)。
可将下列设备作为IO控制器进行连接:
SIMATIC S7-300
(使用配备PROFINET接口或PROFINET CP的CPU)
SIMATIC ET 200
(使用配备PROFINET接口的CPU)
SIMATIC S7-400
(使用配备PROFINET接口或PROFINET CP的CPU)
可将下列设备作为IO设备进行连接:
ET 200分布式I/O设备
ET 200S IM151-8 PN/DP CPU,ET 200pro IM154-8 PN/DP CPU
SIMATIC S7-300
(使用配备PROFINET接口或PROFINET CP的CPU)
现场设备
通过AS-Interface进行过程通信
S7-300所配备的通信处理器(CP 342-2)适用于通过AS-Interface总线连接现场设备(AS-Interface从站)。
更多信息,请参见通信处理器。
通过CP或集成接口(点对点)进行数据通信
通过CP 340/CP 341通信处理器或CPU 313C-2 PtP或CPU 314C-2 PtP的集成接口,可经济有效地建立点到点连接。有三种物理传输介质支持不同的通信协议:
20 mA(TTY)(仅CP 340/CP 341)
RS 232C/V.24(仅CP 340/CP 341)
RS 422/RS 485
可以连接以下设备:
SIMATIC S7、SIMATIC S5自动化系统和其他公司的系统
西门子模块6SL3120-2TE21-8AD0
1多功能测量表SENTRON PAC3200简介
SENTRON PAC3200电能监视设备可提供系统特性,包括电压和电流值、小值和平均值,功率值、频率、功率因数、对称性、逻辑计算、负载趋势、谐波和总谐波失真等。SENTRON PAC3200可检测 50 多个基本数值,具有 10个电能计数器,可用于全面负载检测。它们的测量准确度满足电能计数器标准所规定的较高要求。PAC3200带有MODBUS RTU-RS485接口、PROFIBUS-DP接口和MODBUS TCP 接口,可以很方便将PAC3200的数据上传到PLC中进行处理,也可以上传到HMI中进行数据分析、处理及归档。对于西门子系统可以轻松地将PAC3200集成到上位自动化系统中,例如,集成到西门子 SIMATIC PCS 7 powerrate 和SIMATIC WinCC powerrate 软件包中。
2 PAC3200通信接口对比
PAC3200可以通过MODBUS RTU RS485接口、MODBUS TCP 以太网接口以及现场总线PROFIBUS-DP接口与PLC和HMI通信。下面分别以连接S7-300 PLC为例,在通信性能、连接的个数、编程方面进行对比:
1) 通信性能:PROFIBUS-DP使用令牌方式由主站依次访问从站,是实时现场总线,通信响应快,通信的响应时间应考虑PAC3200数据的刷新时间(自身刷新时间可能较PROFIBUS-DP刷新时间慢);如果选择以太网MODBUS TCP 通信,由于不是实时网络,通信性能次之,通信的响应时间也应考虑PAC3200数据的刷新时间(自身刷新时间可能较以太网刷新时间慢);使用RS485 MODBUS RTU通信,由于基于串口,通信性能不能与以太网与PROFIBUS-DP相比较。
2) 连接个数:使用PROFIBUS-DP,基于主站的性能,多可以连接126个站点;以太网MODBUS TCP 通信,基于CP的连接个数,通常16个;使用RS485 MODBUS RTU,可以连接一个网段,典型值31个站点。
3) 编程:使用PROFIBUS-DP,不需要编写通信程序;使用以太网MODBUS TCP 通信,需要编写发送接收通信程序;使用RS485 MODBUS RTU通信,需要编写从站轮询程序,比较麻烦,如果没有购买MODBUS RTU的驱动,还需要编写通信程序。
4) 价格:PROFIBUS-DP与RS485 MODBUS RTU通信需要购买选件网卡,而PAC3200本身集成以太网接口,支持MODBUS TCP 通信。
下面将介绍PAC3200的MODBUS TCP 通信。
3 MODBUS TCP 通信报文
MODBUS TCP 使MODBUS RTU协议运行于以太网,MODBUS TCP使用TCP/IP和以太网在站点间传送MODBUS报文,MODBUS TCP结合了以太网物理网络和网络标准TCP/IP以及以MODBUS作为应用协议标准的数据表示方法。MODBUS TCP通信报文被封装于以太网TCP/IP数据包中。与传统的串口方式,MODBUS TCP插入一个标准的MODBUS报文到TCP报文中,不再带有数据校验和地址,如图1所示:
图1 MODBUS TCP报文
由于使用以太网TCP/IP数据链路层的校验机制而保证了数据的完整性,MODBUS TCP 报文中不再带有数据校验"CHECKSUM",原有报文中的“ADDRESS"也被“UNIT ID"替代而加在MODBUS应用协议报文头中。
MODBUS TCP服务器使用502端口与客户端进行通信。
S7-300 与PAC3200 之间进行MODBUS TCP 通信时,MODBUS应为协议的报文头赋值如下:
byte 0: transaction identifier (高字节) – 为0
byte 1:transaction identifier(低字节) - 为0
byte 2:protocol identifier(高字节) = 0
byte 3:protocol identifier (低字节) = 0
byte 4:length field (高字节) = 0 (因为所有的报文小于256)
byte 5:length field (低字节) = 后面跟随的字节数
byte 6:unit identifier -原从站地址,这里为0
byte 7:MODBUS 功能码,通过功能码发送通信命令
byte 8 ~:后续的字节数与功能码相关
4 PAC3200支持的MODBUS TCP 功能码
在MODBUS TCP 的报文中,通过使用功能码请求通信伙伴的数据,如对内部寄存器的读写操作、读输入寄存器、写输出寄存器等。不同的操作使用不同的功能码,如FC1、2、3、4、5、6、7、15、16等,PAC3200支持FC2、FC3、FC4、FC6、FC16,在下面将介绍PAC3200这些功能码的报文格式:
FC2 读输入的位信号:
请求:
Byte 0: 功能码,2
Byte 1-2: 开始的位地址
Byte 3-4:位的个数 (1-2000)
响应:
Byte 0: 返回的功能码 2
Byte 1: 返回的字节个数 (B=(位的个数+7)/8)
Byte 2-(B+1): 位信号的值 (有效位是个位信号)
FC3 读多个寄存器信号:
请求:
Byte 0: 功能码,3
Byte 1-2: 寄存器开始地址
Byte 3-4: 寄存器的个数 (1-125)
响应:
Byte 0: 返回的功能码 3
Byte 1: 返回的字节个数 (B=2倍寄存器数)
Byte 2-(B+1): 寄存器的值
FC4 读输入寄存器信号:
请求:
Byte 0: 功能码,4
Byte 1-2: 输入寄存器开始地址
Byte 3-4: 输入寄存器的个数 (1-125)
响应:
Byte 0: 返回的功能码 4
Byte 1: 返回的字节个数 (B=2倍输入寄存器数)
Byte 2-(B+1): 输入寄存器的值
FC6 写单个寄存器信号:
请求:
Byte 0: 功能码,6
Byte 1-2: 寄存器地址
Byte 3-4: 寄存器的值
响应:
Byte 0: 返回的功能码 6
Byte 1-2: 寄存器地址
Byte 3-4: 寄存器的值
FC16 写多个寄存器信号:
请求:
Byte 0: 功能码,10(HEX)
Byte 1-2: 寄存器开始地址
Byte 3-4: 寄存器的个数 (1-100)
Byte 5:字节的个数 (B=2倍输入寄存器数)
Byte 6-(B+5) 预置的寄存器值
响应:
Byte 0: 返回的功能码 10(HEX)
Byte 1-2: 寄存器开始地址
Byte 3-4: 寄存器个数
注:
一个寄存器为两个字节,上面介绍的首地址为MODBUS TCP 报文中PDU的首地址
有网友问我:“我在FB块里设置了参数类型为TIMER的输入参数TIM15。同样的数据类型为Timer的输入参数TIM1~TIM14的定时器是程序原有的,用起来没有问题。TIM15是我新增的,调用功能块时用T2作TIM15的实参,但是在FB里监控TIM15,它不动作。将它改为全局变量,例如T33就正常了。但不知道为什么?烦请廖老师帮忙分析下有那些可能影响的原因。”(我对原话做了些文字整理)。
我用仿真做了实验(见下图),接通两个定时器的线圈,的确看到T33的当前值不断减小,但是看不到TIM15的当前值和它的变化。
对计数器做类似的实验,也看不到计数器当前值的变化。FC里的定时器、计数器也有同样的问题。
问题到底出在哪里,是FB和FC里的定时器、计数器罢工了吗?
为了确认定时器、计数器是否罢工,我用MOVE指令将定时器TIM15的当前值传送到MW12,在定时器线圈通电时,看到TIM15的当前值从设定值开始不断减小(见下图),看来TIM15并没有罢工,只是在监控定时器线圈时看不到它的当前值而已。对计数器做同样的实验,也能证明FB里地址为参数类型COUNTER的计数器是能工作的。
值得注意的是TIM15是输入参数,它的功能是用来接收定时器的地址,它的输出位的状态不会自动地返回给调用FB的程序。需要在FB里创建一个数据类型为BOOL的输出参数,例如下图中的out1,用它来将TIM15输出位的状态返回给调用FB的程序。