欧姆龙PLC与温度仪表485串口通讯的实现
详细内容
欧姆龙PLC与其它仪表或设备通讯(无论是OMRON仪表或第三方仪表),要用带协议宏的串口通讯模块或模板,根据仪表或设备的通讯协议作相应的程序,建立相应的连通通道,就可对仪表进行读和写。
笔者曾为客户作过PLC与第三方温度仪表的通讯,现呈给各位,请指正。
所用PLC为OMRONC200HE-CPU42,配通讯模块C200HW-06,使用其A口(RS485)与温度表TTM-120通讯。
1、所用温度仪表"神王"TTM-120通讯协议:
通讯:站1~31
通讯码:ASCll7位(B除外)8位(MSD位=0)
通讯速度:1200,2400,4800,9600
字符:启动位:1位
数据:7/8位
B校验:预先/不选择
通讯格式:
仪表返回:STX(02H起始码)+地址(2位)+ACK(06H响应)+标识码(3位)+数据(5位)+ETX(03H结束码)
仪表返回:STX(02H起始码)+地址(2位)+ACK(06H响应)+ETX(03H结束码)
可用用CX-PROTOCOL中现有的系统标准协议COPY到新建的程序中,再作修改,当然也可重新编制。
通讯口A参数设置方式为:PROTOCOLMACRO;并以仪表的通讯格式设置波特率等参数。
我作了四种,根据仪表协议中的各个格式,编制宏程序,如下:
①写数据:SD(01)_1
地址格式:ASCll变量格式($(R(1),2)
标识符(仪表功能参数:写入设定值)"空格SV"
②读请求:SD(02)_1
"R":读请求
数据格式:
①接受响应:RV(01)_1
数据格式:
数据形式:变量格式(&(W(1),*))存入PLC指定的接收数据
写入命令设置:
命令:发送&接受
接收命令:RV(01)_1
编号:051
发送命令:SD(02)_1
编制设置完成,下装到PLC中。
3、用CX-PROGRAMMER作通讯程序
三个操作数:一:控制字:端口+协议宏序列号
对于写命令要多一个字为设定值
对于写命令该操作数为虚设字,没有实际意义
DM0000DM0000=#0002DM0001=#0001
写指令:PMCR#1050端口=1序列号050(写入)
DM0040(虚设)
端口二(B):α机为IR289.12CQM1H为IR207.12
每个端口只能执行一个通信序列,可以不同的时间段产生PMCR指令的执行脉冲。
4、对于若干个仪表,每表设置不同的站号,就可由程序分别对其作读写操作,只有地址相符的仪表才能响应。