下面分享一个应用在多个水泵变频器(ABB ACS510)485总线通讯控制的功能块。只需要设置用户常量的起始(AS_ABB)和结束(AE_ABB)就可以和多台ABB ACS510变频器通讯并控制启停,例如AS_ABB=1,AE_ABB=5,既与地址1,2,3,4,5号变频器进行通讯。
在这个实例的基础上可以拓展多种支持modbus_Rtu的不同设备的通讯,然后只需配置用户常量的设备起止地址即可,真正实现一劳(一次编程)永逸,不需要因为现场设备数量的变动而去修改程序。
程序使用的是西门子S7-1200 PLC+CM1241通信模块,通过TIA Portal STEP7 V20进行编程,详细配置请见附录。源文件详见附件。顺便附上ACS510变频器参数配置的表格供大家参考
ABB_ACS510变频器参数设置.xlsx
MB_VFD.zip
附录:
程序运行在S7-1200 PLC中,PLC的硬件配置中启用系统和时钟存储器,如图1所示:
图1 启用系统和时钟存储器
导入外部源文件并生成块,如图2所示:

图2 从源文件生成块
3.编译MB_TD_VFD数据块,如图3所示:

图3 编译块
4.在PLC变量的用户常量新建2个常量AS_ABB和AE_ABB,如图4所示:

图4 新建用户常量
5.调用功能块,并配置好端口,波特率,校验位和超时时间,如图5,图6:

图5 配置端口

图6 配置波特率,校验位和超时时间
6.控制启停,对MB_VFD_DB里的Ctrl_Str和Ctrl_Stp变量写1来控制启停,如图7所示:

图7 启停变量
以下为SCL源码:

图8 SCL程序