[西门子] 《变频器世界》涨知识 | 施耐德PLC与ABB变频器的MODBUS/RTU通信实例

[复制链接]
查看31456 | 回复0 | 2024-1-12 22:44:00 | 显示全部楼层 |阅读模式
+

提示:点击上方"变频器世界"↑免费订阅本刊

本例程是由施耐德CODESYS平台的plc M218与ABB变频器 ACS510的MODBUS/ RTU通讯,由PLC写入运行频率,并读取实际频率,电机电流。变频器的启动,停止则使用硬接线。大家可以思考一下,为什么要这么做。PS:此程序我已经在某工程项目中使用过,绝对可行,你可以私信“modbus” 获取。软件平台Somachine v4.3。

1 接线

modbus的接线比较简单,就是正对正,负对负,如果你接错了也没关系,不会烧坏硬件的。我们分别看一下手册中的介绍



图一 ACS510变频器MODBUS接线



图二 TM218PLCmodbus接线

如上图所示,图一是ABB的端子图,图二是施耐德的端子图,施耐德PLC一般有两个独立的串口,这里我们使用串口2。

需要注意的是,图中黄色荧光笔部分,ABB 是B正A负,而施耐德是A正B负。所以,接线是A对B,B对A.

2 配置

配置,注意是设置各项与通讯有关的参数,主要是指地址,波特率,校验等。



图三 PLC侧设置参数

如图三所示,在PLC 的硬件树里找到串行线路2,双击Modbus_Manager,就是图中黄色荧光笔的部分,打开PLC 的modbus配置



图四 施耐德PLCMODBUS配置

如图四所示,黄色荧光笔部分是设置通讯模式为RTU,我们要用PLC去读取变频器,所以PLC是主站。红色圆圈部分是通讯参数设置。

3 变频器参数设置

变频器主要设置如下参数



图五 ABB变频器参数设置

变频器参数设置的重点就是红色圆圈部分,要保证和PLC侧一致,否则,你是通讯不上的。

4 程序编写

重点来了,程序主要是使用三个功能块 ADDM READ_VAR WRITE_VAR,他们的功能分别是地址转换,写入变量,读取变量。

ADDM,用于把MODBUS 的地址转化成PLC可以识别的地址,这个功能块可以认为是用户和PLC底层的一个交互,可以不用理解,而且这个貌似是施耐德独有的机制,因为在施耐德 的UNITY中(非CODESYS平台)也是用这个功能块。

READ_VAR,WRITER_VAR,才是我们要真正使用的,它的作用就是写入和读取变量,看程序



图六 CFC编写的MODBUS通信程序

如图六所示,是程序的全貌,程序实在太大了,大家可能要费点眼神了,黄色荧光笔部分是程序的启动按钮,当变量Com_En产生一个上升沿时,程序就会自动执行。最后面红色大圆圈就是我们需要的结果。读取或写入的数据是放在数组里的,当你交互的数据是连续的时候,就很方便了。

其实,CFC的精髓就是可以自由移动,就像电路图一样,像通讯程序中,由于前后功能块需要联系,我们就需要中间变量来传递,而直接使用连线,省去了建立中间变量的麻烦。而欧系PLC对通讯的处理也很简单,不需要复杂的编程,配置参数都采用设置的方式,只需要在功能块中指定地址和数量,就可以轻松交互数据。为了方便大家看清楚,程序我分段放大







看上面三个图,小的红圈是使用的功能块,而大的红圈就是通讯的结果。

总结:MODBUS是一种性价比相当高的通迅解决方案,大家可以尝试使用,它比使用模拟量的优势不言而喻。节省配线,传递的信息量大,又可以有效节约成本,提升设备档次。

此程序真实可行,大家可以私信“modbus”来获取。当然,程序只是做了个简单的通讯处理,没有做工艺处理,大家只需加上工艺处理,就可以直接采用了。如果是多台变频器,则采用轮询的方式。

整理编辑 QQ:651871236

推广合作 QQ: 1036456388




更多服务,敬请关注 “变频器世界”

长按二维码  关注公众号



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则