咨询电话
ENGLISH0755-86329511发布时间:2021-05-08 13:43:16 |来源:网络转载
江苏某有限公司制造的UM10067网带炉热处理生产线,配置自动称重装置,称重控制器由上海某公司生产,型号为XK3190-A9+(下称:称重控制器),该控制器通过OMRONPLC的232串口获取热处理工件的重量数据。但在数据通讯调试过程中,存在两个问题:1)称重控制器的通讯接口为RS232口,无法实现超过80m的远距离数据通讯;
2)欧姆龙PLC如何对通讯返回的数据进行处理,正确解析出重量这一关键的数据。为了解决这两个问题,我们将称重控制器的RS232通讯端口转换成RS485通讯端口,并且对得到的数据进行转换成浮点数的处理,从而取得了工件重量这一关键性数据。通过该方法,我们同样可以获得热处理设备上施耐德电流表的累积电流值以及各种带通讯接口的质量流量计的数据,并且在上位机上显示记录,方便客户更好的对热处理生产线进行管理。
1RS232接口转换成RS485接口,实现远距离通讯
RS-232-C的电气接口电路采取的是不平衡传输方式,即所谓单端通讯,其发送电平与接收电平的差只有2~3V,所以共模抑制能力较差,容易受到共地噪声和外部干扰的影响,再加上信号线之间的分布电容,因此其传送距离最大为15m左右,而在实际使用过程中,称重控制器距离欧姆龙PLC比较远,超过80m。
RS485采用平衡驱动器和差分接收器的组合,差分信号为负逻辑,逻辑“1”以两线间的电压差表示为-(2~6)V;逻辑“0”以两线间的电压差表示为+(2~6)V,抗共模干扰能力增强,即抗噪声干扰性好,其最大的通信距离为1219m左右。因此需要对该RS232通讯线路进行RS232转RS485处理。称重控制器配备的15针232口与9针232口转换线,可以将该设备的通讯接口转换成9针232口。再利用一对RS232转RS485的转换器在称重器和PLC之间进行连接。注意的是RS232转RS485转换器上的232口与该9针232口均为母头,无法正常连接,必须使用公头对公头交叉线进行连接,对两个串口的2、3引脚进行交叉连接(TXD接RXD),中间的RS485接线A(+)接A(+),B(-)接B(-)。
图1是完整的接线示意图,按照示意图正确连接后,就可以成功地将称重控制器由RS232转换成了RS485,再用RS485转换成RS232接到PLC的232接口上。为接下来通过欧姆龙PLC实现远程数据获取奠定了基础。
为了验证这种转换接线是否正确,可以使用普通计算机的串口替代PLC的串口,利用串口调试助手测试。本测试中我们用到的是D命令(读净重),串口调试助手发送的十六进制指令为:024144303503。
02:开始符号、41:41H=65D,转换成ASCII码为A、44:操作命令(读净重)、30:异或校验的高位、35:异或校验的低位、03:结束符号。
串口调试助手发送跟接收的数据如图2所示。
串口的通讯设定参数为:9600、N、8、1。从图中可以看出,接收到的返回数据为:0241442B30303334383531313503。
02:开始符号、41:41H=65D,转换成ASCII码为A、44:操作命令(读净重)、2B:2BH=43D,转换成ASCII码为符号“+”、30:30H=48D,转换成ASCII码为数字“0”、33:33H=51D,转换成ASCII码为数字“3”、34:34H=52D,转换成ASCII码为数字“4”、38:38H=56D,转换成ASCII码为数字“8”、35:35H=53D,转换成ASCII码为数字“5”、31:31H=49D,转换成ASCII码为数字“1”,表示小数位为1、31:异或校验的高位、35:异或校验的低位、03:结束符号。
从返回的数据可得出所需要的值为384.5kg,与实际设备上显示的数值一致。
2欧姆龙PLC与通讯接口通讯并解析数据
通过上述串口调试助手与设备的通讯过程可以看出,发送的指令内容为固定内容,因此在与欧姆龙PLC通讯的时候,可以通过TXD、RXD命令的方式来实现。欧姆龙PLC通过TXD发送固定的024144303503指令(保存在DM4000开始的三个DM区内),并用RXD指令将得到的返回数据0241442B30303334383531313503保存在欧姆龙PLC内存中(D4010开始的7个DM区),数据在内存的内容如图3显示。
将D4012和D4013的数据通过HEX指令转换到D5000里面得到0034,通过“BIN(023)”BCD码到二进制数保存在D5200里面,然后通过“FLT(452)”16位到浮点数语句,将D5200转换成浮点数保存在D5100里面;然后将D5100里面的数据乘以100,这里需要注意的是,浮点数占2个DM区,而数值“100”只占1个DM区,用浮点数直接乘以数值“100”会发生错误。所以先要将乘数“100”转换成浮点数保存在D5102里面,然后将D5100与D5102两个浮点数相乘,这样就是正确的结果。将DM4104的数据通过HEX指令转换保存在D5001里面,通过“BIN(023)”BCD码到二进制数保存在D5201里面,然后转换成浮点数,保存在D5106里面;最后再通过“+F(454)”浮点加语句,将D5104与D5106相加,结果保存在D5108里面。这时候我们已经成功地将所需要的数据以不考虑小数点位数以及正负的浮点数形式保存在了D5106里面。
然后将表示小数位数的DM4015的高字节通过HEX转换保存在D5006里面,通过“BIN(023)”BCD码到二进制数保存在D5202里面,然后转换成浮点数保存在D5112,通过“PWR(840)”指数幂语句实现10的指数幂保存在D5114里。这样同样需要注意,要先把底数“10”转换成浮点数保存在D5110里,然后再通过PWR语句实现指数幂的换算。如果小数位数为1,则D5112里面就是浮点数的10;如果小数位数为2,则D5112里面就是浮点数的100。
最后通过“/F(457)”浮点整除语句对D5108以及D5114进行处理,结果保存在D5116里面,即可实现小数位的功能。数据的正负需要通过返回数据的第四位数确定,如果返回的是“2B”,则表示正数,直接将D5116的数值通过“MOVL”长传输指令传输到D5120里;如果返回的是“2D”,则表示负数,这时候需要将“0”转换成浮点数保存在D5118里,然后通过“-F(455)”浮点数减用0减去D5116,最终的结果保存在D5120里面。
通过图4所示的数据处理过程,就可以成功的将我们所需要的数据转换成浮点数保存在D5120里面。
3结论
通过将设备上的RS232通讯接口转换成RS485接口可以实现欧姆龙PLC远程获取数据的功能,可以通过将数据先转换成浮点数,然后再对浮点数进行处理,最后以浮点数的形式保存在PLC内存地址中,这样就可以正确的对数据进行解析。
至此,在进行热处理生产线管理的时候,就可以一目了然的获得工件的重量、生产线累积消耗的电流以及各种气氛的累积消耗量,以供客户更好地分析热处理设备的性能。
本文源于网络转载,如有侵权,请联系删除