联系我们  设为首页 加入收藏

上海西门子系统集商,采购西门子plc电器,就找上海凌基!TEL:18017892190 / 021-36588219

您的位置:上海西门子PLC > 电气控制基础 > 工业现场使用MODBUS/RTU通信提高可靠性的经验分享

工业现场使用MODBUS/RTU通信提高可靠性的经验分享,delphi modbusrtu通信

电气控制基础   查阅次数:0   更新时间: 2018-02-16 08:32

delphi modbusrtu通信plc 的输入,所谓输入,就是人命令PLC去做事情,而这些命令是通过开关,按钮,接近开关等实现的。而输出,就是PLC去驱动机器设备,是靠继电器,晶闸管,晶体管去实现的。而这正是PLC输出的三种类型。今天,就为大家讲述PLC的输出意义以及如何实现。

MODBUS是一种性价比非常之高的短距离,低成本通信解决方案,但是它也有缺点,比如实时性不高,传递的数据量有限, 通信速率不高,容易受到干扰,但是瑕不掩瑜,我们不能因为它有缺点,就讳疾忌医,相反,我们要不断发现并解决它的漏洞,提高设备的可靠性,今天,我就跟大家分享下,在应用MODBUS通信过程中的几点经验。
1.布线
首先,你的MODBUS线缆一定不要放在线槽里,有些人总以美观为理由,把通信线放置在线槽内,其实这是非常错误的想法,是绝对的照明电工思维方式。难道放在外面就不美观了?再说,我们做的是工业控制产品,不是艺术品,可靠性是第一位的,不能为了追求美观,而放弃了可靠性。
其次,MODBUS线缆要用双绞线,要知道,对于MODBUS通信,双绞比屏蔽更重要。如果没有双绞线,建议你自己做,或是买那种照明用的双绞线,这种线缆线径够粗,而且是两种颜色,便于识别。


图一 市售的红黑双色线
如图一所示,这是小编我在某个项目中使用的通信线,就是在五金市场买的,红黑双色,天然双绞,线径够粗,还是很不错的。
2.多台从站建议用时间轮询,内部用功能块触发
当你和多个从站通信的时候,站点和站点之间用时间轮询,站点内部用功能块的信号轮询,这样可以大大提高通信的可靠性,既不会太浪费时间,又能确保某一从站出问题而不影响其他从站。


图二 时间间隔与BUSY信号配合的轮询通信
如图二,是plc和两台变频器的通信,红色线上部分是第一台变频器,红色线下半部分是第二台变频器。蓝色箭头使用时间间隔方法,每个变频器分配30毫秒的时间,而黄色荧光笔是每台变频器的通信扫描。
3.对于控制变频器,启停使用硬接线


图三 典型变频器的MODBUS控制
如图三所示,只是一个变频器的控制电路,图中红色圆圈部分,是用硬接线控制启停,黄色荧光笔部分,使用MODBUS通信写入频率,读取实际频率和电流。如果完全使用MODBUS通信,启停部分就使用一个通信字,而且一旦通信死掉,变频器就处于失控状态,这是很危险的。而使用硬接线控制启停,无论任何情况下,都能确保变频器可以安全可靠的停下
4.波特率
波特率越高,通信速率越快,但是稳定性降低,很容易受到干扰。一定要在稳定可靠的前提下追求速度,所以,一般建议波特率用9600。既能保证通讯速率,又能把速率过高引起的不稳定降到最低。

delphi modbusrtu通信:PLC零基础入门讲解,如何根据手册和图纸,实现输出接线

plc 的输入,所谓输入,就是人命令PLC去做事情,而这些命令是通过开关,按钮,接近开关等实现的。而输出,就是PLC去驱动机器设备,是靠继电器,晶闸管,晶体管去实现的。而这正是PLC输出的三种类型。今天,就为大家讲述PLC的输出意义以及如何实现。
PLC的输出在内部是各种电路,我们作为使用者看到的是各种接线端子。

图一 PLC的输出
如图一,画面左边的一排螺丝就是我们接输出的地方,无论任何PLC 都是这种形式,无非是排列方式不一样,螺丝换样子而已。单从外观,我们是无法区分PLC输出的类型的。一般是从型号上区分,PLC 的型号上一般都有表示输出特性的字母。
R 是英文 Relay的缩写,表示继电器输出,可接交直流负载
T 是英文 Transistor的缩写,表示晶体管输出,只能接直流负载
S 是英文 Silicon的缩写,表示晶闸管输出,只能接交流负载
比如图一中PLC 的型号是 K7M-DRT20U,字母R T就是表示输出的字母。它表示此PLC是继电器和晶体管混合输出的。大多数PLC都是用这些字母表示的,应用最广泛的西门子plc 是用单词简写表示,比如DC/DC/RLY 就分别表示电源 输入 输出的类型,很显然RLY表示是继电器输出。
晶体管输出可以发出高速脉冲,一般是控制伺服,分PNP和NPN两种接法。晶闸管输出可以直接接交流负载,一般很少用。我们用的最多的就是继电器输出,和我们平常用的继电器是一摸一样的。它性价比高,可接交直流负载,它仅仅是一个触点,所以不分NPN和PNP。缺点是,反应时间慢,而且有机械寿命。那么,我们是怎么根据手册来接线的呢?下面我以施耐德TM218LDA40DRPHN 为例向大家说明,从型号看,它是继电器型输出。


图二 PLC 手册
如图二,这是PLC的硬件手册,看黄色荧光笔部分,我画出了一个输出回路,由此可以看出PLC继电器输出的实质就是一个开关,COM端和输出端子之间构成了一个个的开关。当Q8有输出的时候,COM和Q8之间导通,也就驱动了外部的元器件,比如继电器,指示灯等。而继电器就可以去驱动电机,变频器,气缸等元器件,实现机器动作


图三 接线图纸
如图三所示,这是实际的接线,红色圆圈部分是外接的电源,而黄色荧光笔部分就是Q8这个输出点的回路。电流从右侧24+端子流入COM3,当Q8有输出的时候,COM3和Q8导通,驱动继电器,而主机3就会启动,所以,PLC 的输出其实就是导通了输出点和COM端。同理 Q9 有输出就是导通了COM端和Q9, Q12有输出就是导通了COM4和Q12。需要注意的是,PLC的输出端不止有一个公共端COM,一定要区分使用。
总结:PLC无论是什么品牌,都是万变不离其宗,大家学习PLC不要为了学习而学习,不是为了学习某个品牌。而是掌握原理和实现方法。这样即使换个PLC,也可以轻松掌握。所以,还是要掌握PLC 的套路,而本文讲述的继电器输出套路,是所有PLC通用的,希望初学者能认真理解,举一反三。

delphi modbusrtu通信:如何实现PLC与多台变频器的MODBUS/RTU通信

如果现在有个项目,需要MODBUS控制五个变频器,那该怎么办?也许你会说,这还不简单,把前面的通信程序复制五遍不就行了?理论上,这是可行的,但却是不可行的,为什么呢?因为串口在同一时间,只能进行一次数据交互。这个一次,是指一次读或是写操作。这就好比一个很窄的路口,一次只能通过一辆汽车,如果五辆汽车一起通过,势必会引起堵塞,一辆也过不去,但我们需要过五辆怎么办?那就需要交通灯或是交警指挥交通,通信也一样,也需要有交通灯或是交警,而在MODBUS通信中,就需要我们自己来当交警,通过程序控制通信流程,这就是轮询方式。而MODBUS通信实现轮询,有两个常用的方法。
1.时间间隔法
所谓时间间隔法,就是每个操作分配一个固定的时间,比如第一秒写入频率,第二秒读取频率,第三秒读取电流,当然,这个时间是要根据实际情况来设置的,我们看一个例子


图一时间间隔
如图一所示,这是一个BLINK 和计数器两个功能块组成的程序,BLINK产生一个50毫秒的脉冲,而计数器对此脉冲进行计数,因此,计数器的当前计数值CV 也就是图中黄色荧光笔部分,就会从1 到6每隔50毫秒递增一次。这样,就为每一次操作分配了50毫秒的时间。


图二 利用时间间隔触发通信
如图二,红色圆圈部分,当数值等于1的时候,我们写入地址0002,当数值等于2的时候,我们读取103,依次类推。黄色荧光笔部分是触发路径。
2.功能块触发法
功能块触发法,是利用功能块的状态参数来触发下一次通信,也就是我在介绍通信的时候使用的BUSY信号


图三 利用BUSY信号触发下一次读写
如图三所示,当写入0002通信完成后,利用BUSY信号来触发下一次通信,读取103的值。图中黄色荧光笔的部分,就是触发路径,当上一个通信功能块的BUSY信号产生下降沿的时候,证明这次通信已经完成,以此来触发下一次通信。
以上,就是两种常用的轮询方法,它们各有优缺点,最好的方式就是两者结合。利用时间间隔,这个时间间隔的设置就很讲究,时间太短,可能通信还没完成,时间太长影响效率。而利用功能块的BUSY信号,可以很好解决这个问题,但是,一旦一个环节通信出错,BUSY信号无法给出,就会造成后面的通信无法进行,那么该如何结合呢?那就是用时间间隔来确定从站之间的通信间隔,而同一个从站的读写就用功能块信号触发,这样即使通信有错误,也只是影响一个从站。
我们为每个从站分配30毫秒的时间,那么轮询10个从站只需要300毫秒,这基本能满足我们的需求,而又能保证每个站的通信时间。因为超过10个从站,就不建议用MODBUS通信了,那样就要考虑使用总线了。而一个从站内部,要读写多次的时候,就用BUSY信号触发。这样,即使一个从站通信出现问题,也不会影响下一个从站的通信。

版权所有:上海凌基自动控制有限公司     电话:18017892190 / 021-36588219   传真:021-36588220
地址:上海市宝山区陆翔路111弄(顾村绿地公园广场)1号503室  网址:http://sh-lingji.com   沪ICP备17047371号-1