1、通讯接口
以松下fp1系列plc为例来阐述plc与扩展模块之间的通讯,fp1系列plc的通讯接口采用标准9芯rs232接口,它与扩展模块之间的接线如图所示。
图1 扩展模块与plc的通讯连接
· 扩展模块的rxd端与plc的txd端联接,使扩展模块接收到plc发出的数据;
·扩展模块的txd端与plc的rxd端联接,使扩展模块发出的数据被plc接收到;
· 扩展模块的地与plc的sg端互联,使两者的工作基准地电平相同。
上面采用的是rs232接口,plc一次只能扩展一个模块。假如要扩展多个模块,可以采用rs485接口,现代的plc一般都带有rs485接口。
2、通讯协议
松下fp1系列plc与扩展模块之间的通讯协议为松下公司专用的mewtocol-com协议,该协议采用异步通讯方式,其波特率有1200、2400、4800、9600、19200、38400、57600、115200bps等多种可选,且报文长度可变可固定。该协议格式分为命令消息(command message),正常响应消息(response message-normal),出错响应消息(response message-error)三种。
其中:%为起始符,标记每一帧报文的开始;cr为结束符,标记每一帧报文的结束;
ad为plc的站地址,为两位16进制数,如00则表示第一台plc;
#、$、!标注该帧报文为何种类型。
command code为命令代码,如例1中的“rd”,表示读数据区。response code为响应代码一般返回接收到的命令消息中的命令代码。error(h)和error(l)为出错代码,是两位16进制数, 可根据其值在协议中查出错误的描述。
text code为命令参数,如例1命令消息中“d 01105 01107”,“d”表示数据寄存器,“01105 01107”表示第1105号至1107号,而在例1响应消息中,“6300 4433 0a00”则表示dt1105至dt1107中数据分别为6300、4433、0a00。
bcc(h)和bcc(l)为前面字符串的bcc校验码的高、低位,为两位16进制数。其初值为0,然后从起始符开始与该帧报文中每一字节按位进行异或运算得到。
例1:读取dt1105至dt1107中的数据的命令消息如下:
% 01 # rd d01105 01107 57 cr
若dt1105至dt1107中数据分别为6300、4433和0a00,plc返回的响应消息如下:
% 01 $ rd 6300 4433 0a00 62 cr
那么, 模拟量输进扩展模块与plc通讯的报文可如下:
% 01 # wd d 01105 01105 0fff 32 cr
表示1号模拟量输进扩展模块把模拟量采样值0fff存进plc的第1105个数据寄存器
模拟量输出扩展模块与plc通讯的报文可如下:
% 01 # rd d 01106 0110f 02 cr
表示1号模拟量输出扩展模块请求把plc中第1106个数据寄存器保存的模拟量输出值读进。
若dt1106中数据为0fff,plc返回的响应消息如下:
% 01 $ rd 0fff 45 cr
1号模拟量输出扩展模块就把接收到的数字量0fff转换成模拟量输出。