西门子6SL3120-2TE13-0AA4技术参数
PLC与其它仪表或设备通讯(无论是OMRON仪表或第三方仪表),要用带协议宏的串口通讯模块或模板,根据仪表或设备的通讯协议作相应的程序,建立相应的连通通道,就可对仪表进行读和写。
笔者曾为客户作过PLC与第三方温度仪表的通讯,现呈给各位,请指正。
所用PLC为OMRON C200HE-CPU42,配通讯模块C200HW-COM06,使用其A口(RS485)与温度表TTM-120通讯。
1、所用温度仪表“神王”TTM-120通讯协议:
EIA标准:RS485
通讯:站 1~31
传输:半双工
通讯码:ASCll 7位(BCC除外) 8位(MSD位=0)
接口方式:2线制
通讯速度:1200,2400,4800,9600
通讯距离:500Mmax
字符:启动位:1位
停止位:1/2位
数据:7/8位
校验:无/奇/偶
BCC校验:预先/不选择
通讯地址:1~99
通讯格式:
读数据:STX(02H 起始码)+地址(2位)+R+标识码(3位)+ETX(03H 结束码)
仪表返回:STX(02H 起始码)+地址(2位)+ACK(06H 响应)+标识码(3位)+数据(5位)+ETX(03H 结束码)
写数据:STX(02H 起始码)+地址(2位)+W+标识码(3位)+ 数据(5位)+ETX(03H 结束码)
仪表返回:STX(02H 起始码)+地址(2位)+ACK(06H 响应)+ETX(03H 结束码)
错误信息响应:STX(02H 起始码)+地址(2位)+NAK(15H 错误响应)+错误格式(1位)+ETX(03H 结束码)
2、用协议宏软件CX-PROTOCOL作协议宏程序
可用用CX-PROTOCOL中现有的系统标准协议COPY到新建的程序中,再作修改,当然也可重新编制。
在新建的程序的DEVICES中选择所用的PLC型号,
通讯口A参数设置方式为:PROTOCOL MACRO;并以仪表的通讯格式设置波特率等参数。
协议宏程序中有若干内容:主要是发送信息列表;接受信息列表;这两个表是协议宏的基本程序。再有就是具体的发送形式和接受形式,其它功能的读写形式,仪表的其它功能的读写形式。
我作了四种,根据仪表协议中的各个格式,编制宏程序,如下:
发送信息列表:
①写数据:SD(01)_1
<h>:STX
<t>:ETX
数据形式:变量格式($(R(2),5))
地址格式:ASCll变量格式($(R(1),2)
"W":写请求
标识符(仪表功能参数:写入设定值)“空格SV”
数据格式:<h>+<a>+"W"+" SV"+($(R(2),5))+<t>
② 读请求:SD(02)_1
地址格式:ASCll变量格式($(R(1),2)
"R":读请求
标识符(仪表功能参数:读入过程值)“PV1”
数据格式:<h>+<a>+"R"+"PV1"+<t>
接受信息列表:
①接受响应:RV(01)_1
"ACK":响应接受
数据格式:<h>+<a>+"ACK"+<t>
②接受数据:RV(02)_1
数据形式:变量格式(&(W(1),*)) 存入PLC*的接收数据
数据格式:<h>+(&(W(1),*))+<t>
写入命令设置:
编号:050
命令:发送&接受
发送命令:SD(01)_1
接收命令:RV(01)_1
读入命令设置:
编号:051
命令:发送&接受
发送命令:SD(02)_1
接收命令:RV(02)_1
编制设置完成,下装到PLC中。
3、用CX-PROGRAMMER作通讯程序
程序用协议宏指令PMCR完成与仪表的通讯:
三个操作数:一:控制字:端口+协议宏序列号
二:发送数据首址 占2/3个字,首字是指令字数;下一字为仪表地址;
对于写命令要多一个字为设定值
三:接收数据首址 占4个字,首字是命令字数;下两字是接收的5位数据。
对于写命令该操作数为虚设字,没有实际意义
读指令:PMCR #1051 端口=1 序列号051(读出)
DM0000 DM0000=#0002 DM0001=#0001
DM0030 DM0030=#0004 DM0031~DM0033=数据
写指令:PMCR #1050 端口=1 序列号050(写入)
DM0020 DM0020=#0003 DM0021=#0001 DM0022=设置值
DM0040(虚设)
协议宏执行标志:端口一(A):α机为IR289.08 CQM1H为IR207.08
端口二(B):α机为IR289.12 CQM1H为IR207.12
当这变量=0时,方可执行PMCR命令
每个端口只能执行一个通信序列,可以不同的时间段产生PMCR指令的执行脉冲。
4、对于若干个仪表,每表设置不同的站号,就可由程序分别对其作读写操作,只有地址相符的仪表才能响应
1、问:浮点运算有什么样的好处,在运算的结果中他的小点位也是不可以进位的?浮点运算与双精浮点运算有什么样的区别?高速计数器复位标志由OFF到ON时,将高速计数器当前值复位。此外,复位标志OFF到ON的判定1周期1次,在共通处理中进行,复位处理也在该时间进行。但是,在1周期的中间时间段内OFF到ON发生变化时,复位标志则正法追踪。
压力机是汽车行业冲压车间的关键设备,主要用于生产汽车白车身各种冲压零部件。压力机与模具配合完成汽车冲压件的拉延、修边的过程中,需要调整滑块高度,适应不同高度的模具,其调整精度和稳定性直接影响汽车冲压件的质量。
2 系统设计
目前,奇瑞公司冲压四车间使用的小吨位压力机的滑块调整显示表是机械式的,精度和稳定性差,操作人员目视机械式显示表不方便,容易读出错误数据,从而造成设备过载,引起设备故障和设备事故。而且压力机上安装有滑块调整上下限位,如果压力机单次运行或寸动,容易将限位开关打坏,上下限位开关起不到保护作用,容易引发安全事故。
2.1 系统分析
为解决上述问题,汽车行业普遍采用编码器解决方案。此方案利用旋转编码器记录滑块高度,将信号送给欧姆龙plc高速计数模块,经过欧姆龙plc处理转化为十进制数值,然后显示滑块高度。
但是对比接近开关方案,编码器方案的成本投入大,同时要求plc能支持高速计数模块,对现场的环境要求高。
接近开关方案比编码器方案节省近7000元,而且安装比较方便,对plc系统的要求也低,还能达到规定的精度和稳定性。
目前,我们采用的是接近开关方案。此方案通过接近开关检测压力机机械传动轴旋转的圈数,将信号送到欧姆龙plc,经过内部程序处理,输出到欧姆龙plc数字量输出模块,在bcd码显示器上显示滑块高度。
2.2 系统实现
(1)利用压力机设备上现有的接近开关,检测滑块调整机构丝杆旋转的圈数,将到的圈数送入欧姆龙plc。我们运用欧姆龙plc的特殊指令inc和dec,通过bcd递增和递减功能来实现传动轴正转和反转时,圈数的加减。
(2)利用游标卡尺测量传动轴旋转一圈时滑块实际移动的距离,得出传动系数。反复测量几次后求平均值,提高传动系数的计算精度。
(3)经过程序的运算,将传动圈数乘以传动系数,就可以得出滑块调整高度的当前值,再通过欧姆龙plc将数值以bcd码的形式,在欧姆龙plc的输出模块(oc222),以继电器形式输出。
在现场压力机滑块调整需要显示四位数,我们在欧姆龙plc(型号:cqm1h-cpu21)后面再加一个16点的输出模块(oc222),用四个输出点来显示一位数字,就可以正常显示这四位数。