西门子6SL3330-7TE36-1AA3
2PAC3200通信接口对比
PAC3200可以通过MODBUS RTU RS485接口、MODBUS TCP以太网接口以及现场总线PROFIBUS-DP接口与PLC和HMI通信。下面分别以连接S7-300PLC为例,在通信性能、连接的个数、编程方面进行对比:
1)通信性能:PROFIBUS-DP使用令牌方式由主站依次访问从站,是实时现场总线,通信响应快,通信的响应时间应考虑PAC3200数据的刷新时间(自身刷新时间可能较PROFIBUS-DP刷新时间慢);如果选择以太网MODBUSTCP通信,由于不是实时网络,通信性能次之,通信的响应时间也应考虑PAC3200数据的刷新时间(自身刷新时间可能较以太网刷新时间慢);使用RS485MODBUS RTU通信,由于基于串口,通信性能不能与以太网与PROFIBUS-DP相比较。
2) 连接个数:使用PROFIBUS-DP,基于主站的性能,zui多可以连接126个站点;以太网MODBUS TCP通信,基于CP的连接个数,通常16个;使用RS485 MODBUS RTU,可以连接一个网段,典型值31个站点。
3)编程:使用PROFIBUS-DP,不需要编写通信程序;使用以太网MODBUS TCP 通信,需要编写发送接收通信程序;使用RS485MODBUS RTU通信,需要编写从站轮询程序,比较麻烦,如果没有购买MODBUS RTU的驱动,还需要编写通信程序。
4) 价格:PROFIBUS-DP与RS485 MODBUSRTU通信需要购买选件网卡,而PAC3200本身集成以太网接口,支持MODBUS TCP 通信。
下面将介绍PAC3200的MODBUS TCP 通信。
3 MODBUS TCP通信报文
MODBUS TCP 使MODBUS RTU协议运行于以太网,MODBUSTCP使用TCP/IP和以太网在站点间传送MODBUS报文,MODBUSTCP结合了以太网物理网络和网络标准TCP/IP以及以MODBUS作为应用协议标准的数据表示方法。MODBUSTCP通信报文被封装于以太网TCP/IP数据包中。与传统的串口方式,MODBUSTCP插入一个标准的MODBUS报文到TCP报文中,不再带有数据校验和地址,如图1所示:
图1:MODBUSTCP报文
由于使用以太网TCP/IP数据链路层的校验机制而保证了数据的完整性,MODBUS TCP报文中不再带有数据校验"CHECKSUM",原有报文中的“ADDRESS"也被“UNITID"替代而加在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 ~:后续的字节数与功能码相关
4PAC3200支持的MODBUS TCP 功能码
在MODBUS TCP 的报文中,通过使用功能码请求通信伙伴的数据,如对内部寄存器的读写操作、读输入寄存器、写输出寄存器等