微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PLC串行通讯应用原理

PLC串行通讯应用原理

时间:12-21 来源:互联网 点击:

号的衰减,如此一来,将得不到正确的结果,因此,采用传感器讯号就地处理,而数据传输通过数字通讯方式能够有效的解决这一问题,保证数据的正确性与准确性;但通讯同样也会受到外界的干扰,使得通讯质量下降,甚至根本无法建立通讯。要保证通讯正常,在组建通讯网络时应该注意以下几点:

  (1)保证通讯协议一致,所有联机之从站接口设备波特率及通讯格式需与主站相同,合理分配各从站的站地址,避免地址冲突。

  (2)合理布线,减少外界干扰对通讯的影响。走线走得好,可以很大程度减少干扰的影响,提高通讯的可靠性,走线应遵循两个原则:远离电源线,变频器等干扰源;当网线不能与电源线等干扰源避开时应与电源线垂直,不能平行,并采用质量高的双绞线走线

  (3)通讯速率的选择,一般来说提高通讯波特率能够提高通讯效率,但并非一味的提高就肯定好,传输速率的提高同时加大了传输错码率,使传输质量下降,特别是在工业控制场合外界干扰比较大的情况下,有时适当降低传输速率会得到更好的传输效率。

  (4)正确编制通讯程序。PLC通讯程序的编制在实现串行通讯中也是非常关键的一步,一个合理的通讯程序能够提高通讯效率,而不完善的通讯程序则会导致通讯效率下降,甚至通讯失败,使PLC出现运行错误。由于RS485通讯采用半双工的工作模式,因此通讯程序的编写主要是对通讯指令的分时处理程序,在此用以下两个通讯程序来描述如何合理编制PLC通讯程序,程序主要是PLC通过485通讯方式读写三台变频器的频率,均实际测试运行过:

  3.5 台达PLC通讯程序要点

  (1)“固定时序通讯程序”是台达PLC通讯技术工程处理通讯常用方法,利用固定计时的方法来实现分时通讯,这样的写法比较容易造成通讯时序上的问题。Modbus 通讯规格是采用主/从模式,也就是主站发通讯命令给从站,从站收到之后再回应主站,这一收一回才算完成一个完整的通讯资料交换,该程序有使用到M1127来判断,但是决定下一个通讯指令是否运行的接点开关却不是由通讯旗标来决定,而是由100ms 的 timer来决定,这样很容易有问题生成,因为通讯的整个时间包含通讯资料在线上传输的时间加上通讯资料在主/从站处理的时间,若这时间超过100ms,那就很容易造成从站回传,而主站送资料出去,造成资料在线上碰撞,因而影响传输的正确性,如果把timer时间延长,还是会碰到有问题,因为这种写法,通讯旗标的动作与决定传送的旗标本身并未同步,因而会有时间差,造成资料不正确。该程序在EH机型上测试,发现通讯速度比较慢,且读回来的数据有时会发生交叉的现象,即从站2的频率读到从站4的寄存器上,错误读写的情况可见图一。使用这种编程方法在通讯正常时没有问题,一旦当通讯数据错乱时,就会造成数据传送错误,严重时甚至导致PLC死机,参见图1。

  

  图1 错误读写,红圈部分信道D200数据变为K3000,应该是K1000

  (2)“通讯旗标方式程序”是调整后的程序,可以比较一下,其主要区别在于Modbus Read/Write 指令在程序使用上搭配M1127, M1129, M1140, M1141 来判断,由这几个旗标的状态来决定下一个通讯指令的运行时间,能够很好的处理串行通讯的时序问题,保证通讯的可靠及效率,正常通讯监控画面如图二。在用固定时序通讯中,即使通讯正常完成,那末也要等到100MS以后做下一个通讯,比如写指令通讯完成耗时20MS,则需要等待80MS,降低了通讯效率,而采用通讯旗标会在通讯完成或出现错误的情况下转入执行下一个通讯指令,有效利用了时间,参见图2。

  

  图2 正常通讯监控画面

4 台达PLC与松下变频器通讯案例

  采用台达ES系列PLC,用通讯方式来改变松下VF0C系列变频器的设定频率,PLC端使用485口,无协议方式来模拟VF0C变频器的通讯协议。

  4.1通讯协议

  VF0C系列变频器留有485通讯口,并提供内部通讯协议如下:

  写:% [站号] #WD [功能号] [起始地址] [结束地址] [数据] [BCC] \\CR

  读:% [站号] #RD [功能号] [起始地址] [结束地址] [BCC] \\CR

  如果写正确,返回:%01$WD BCC\\CR

  如果读正确,返回:%01$RD [数据] BCC\\CR

  分别规定了字节数,在以下表格以写数据为例做详细说明:

  在松下VF0C系列变频器中,站号默认为01,通讯格式为9600、N、8、1,通讯方式是ASCII方式,数据为十六进制,存储模式为8位模式。设定频率的地址是DT237,而读设定频率的地址为DT133,而且在DT237和DT133的数据都是以0.01Hz为单位的。下面以写频率为例,来做详细说明。

  4.2实例说明

假设要写入的频率是43.5Hz,那么需要写入的数值应为10FE(4350),

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top