西门子 S7-200系列是自控市场上有重要地位的PLC,Siemens公司为S7-200PLC专门编写了USS4通讯子程序,用于与Siemens自己的MicroMaster系列变频器通讯。由于USS协议与Danfoss丹佛斯 RS485通讯协议非常相似,所以只要作很小的改动就能使Siemens的USS4通讯子程序实现S7-200 PLC与丹佛斯 FC300、VLT2800、2900,5000系列变频器的通讯控制。
一、硬件接线:
接线对照表如下:
RS485 P和RS485 N两根通讯线应该使用屏蔽双绞线,屏蔽层在Danfoss变频器侧压接地;如果通讯干扰很厉害,可以将PLC和变频器的RS485通讯口的地连接在一起,常有奇效。
二、USS协议与Danfoss RS485通讯祯格式对照比较:
SIEMENS USS通讯协议完全说明可以从
support.automation.siemens.com网站上下载。 下面只作简要说明。
1. 通讯速率:
l USS协议的波特率为300,600,1200,2400,4800,9600,19200,38400,57600,76800,93750,115200,187500;
l S7-200 USS4通讯子程序支持的波特率为1200,2400,4800,9600,19200;
l 以Danfoss FC300以例, RS485通讯协议支持的波特率为2400,4800,9600,19200,38400,115200;
上海津信建议使用Danfoss的出厂默认值9600 Bd。
2.起始位、数据长度、校验位、停止位:
USS协议的起始位为1位,数据长度为8位,校验为偶校验,停止位为1位,与Danfoss RS485通讯协议的规定完全相同。
三、USS协议与Danfoss RS485通讯协议报文格式对照比较:
S7-200 USS4通讯子程序支持的USS协议报文格式如下:
首先说明,USS协议的报文框架结构与Danfoss RS485通讯协议的完全相同,下面就其具体定义进行比较:
1. 起始字符:
USS协议的起始字符为ASCII字符STX (02HEX),与Danfoss RS485通讯协议相同。
2. 数据长度LGE:
USS协议的数据长度是指LGE后面所跟的字节数,此定义与Danfoss RS485通讯协议相同。
3. 从站地址ADR:
USS协议的从站地址定义为RS485标准格式,Danfoss RS485通讯协议也支持RS485标准地址格式(Danfoss自定义的专用地址格式就不能用了)。
4. 校验码BCC:
USS协议的校验码是报文中BCC校验码前面所有字节作“异或”运算的结果,与Danfoss RS485通讯协议的定义相同。
5. 过程数据区:
虽然USS协议支持n个PCD过程数据字,但是S7-200 USS4子程序只支持2个PCD,因此过程数据区的长度与Danfoss RS485通讯协议的定义相同。
6. 过程数据区的PCD1:
USS协议定义PCD1为控制字/状态字,与Danfoss RS485通讯协议相同,只是控制字/状态字的位功能定义不同。
7. 过程数据区的PCD2:
USS协议定义PCD2为主设定值/主实际值,与Danfoss RS485通讯协议相同;Siemens此数据有两种规格化方式,其一为16进制4000HEX对应100%,与Danfoss定义相同;另一种规格化方式为“绝对值”方式,16进制4000HEX为16384,对应163.84Hz,与Danfoss定义不同。
8. 参数命令数据区的参数特征字PCA:
位0-10,对应参数号的b0-b10位,USS协议的定义与Danfoss的相同。
位11,虽然USS协议中定义为参数变动自发信息,但S7-200 USS4通讯子程序没用到,因此与Danfoss的定义也就相同了,填入0。
位12-15,任务标识表,主机发给从机时:
位12-15,任务标识表,从机应答主机时:
S7-200 USS4通讯子程序中用到的任务标识与Danfoss的定义相同。
9. 参数命令数据区的索引IND:
USS协议将此字的12-15位定义为扩展参数号,单对于Danfoss变频器而言,暂时还用不到扩展参数号,填入0。
其余位USS4通讯子程序中的定义与Danfoss的相同。
10. 参数命令数据区的参数值PVA(PWE):
USS协议主站发送命令时参数值PVA可以为1个字或2个字,而Danfoss RS485通讯协议固定为2个字,这是一个关键差异。接收时,无论单字还是双字PVA,USS4通讯子程序都能正常接收。
四、USS协议与Danfoss VLT变频器通讯需要做的改动:
综上所述,S7-200 PLC USS4通讯子程序与Danfoss RS485通讯协议其实只有一个地方不兼容:USS4中有的通讯命令报文格式的参数值PVA是单字长度,而Danfoss要求固定长度双字。
为了保持程序的通用性,我们尽量做最小的程序改动。
分析S7-200 USS4通讯子程序,总共由17个子程序构成,其中Danfoss VLT变频器要用的,涉及参数值PVA,并且PVA长度只有单字的子程序其实只有2个:
1.
USS4_DRV_CTRL,控制字及总线给定子程序
2.
USS_RPM,读参数子程序
将这2个子程序发送的PVA长度从单字改为双字,就能与Danfoss变频器正常通讯了。而且由于Siemens Micro Master变频器能识别双字PVA,所以改动后的程序不影响S7-200 PLC与SIEMENS变频器之间的通讯。