也许有人会说台达变频器支持MODBUSRTU通信,S7-200SMART系列PLC集成了MODBUS库指令,使用指令库就能够很好的完成S7-200SMART系列PLC与台达变频器通信,我为什么还需要去掌握ASCII的通信方式呢?使用ASCII的通信方式,程序设计又复杂,还不方便。确实是这样的,使用库指令确实很方便,但在实际使用的过程中有一些设备不支持RTU通信,那么就无法使用库指令通信,ASCII通信的实现使用的是PLC的自由口通信功能,掌握自由口通信的重要性就出来了,自由口通信是RTU库指令的基础,库令内部也是使用自由口的方式来编写的。
想通过PLC与台达变频器的MODBUSASCII的通信为例,来分享个人对于自由口通信程序的一些设计思路和想法。
通信连接说明
西门子S7-200SMART本地自带的通信端口为RS485接口,变频器上提供一个RJ11外观的485接口,如图1-1所示为连接示意图,图1-2所示为通信接线图,其中PLC侧的3号脚和8号脚分别表示485+和485-,变频器侧的3表示485-,8表示485+
图1-1 连接示意图
图1-2 通信端口接线图
变频器参数设置
变频器参数的设置有两部分,一是基本参数和通信参数,基本参数包括主频率的来源,运行命令的来源,二是通信参数,通信参数包括站号,通信速率,通信格式和通信协议选择等,如图1-3所示
图1-3 变频器通信参数设置
信息帧格式说明及数据准备
根据变频器通信协议的说明,对需要实现的功能进行数据的规划和地址的分配,如下所示:
(1)读取变频器的状态
(2)读取输出频率,输出电流,直流母线电压,输出电压
(3)写运行命令和写频率数据
通信程序的设计思路
通信程序的设计即要考虑到数据能够正常的交换,也需要考虑到若重新断开后重新连接时可以自行建立通信,以下是个人对通信程序设计流程的一些
参考程序
由于程序过多,程序截图不方便,在文中只放置了主程序部分的内容,若需要详细的程序可点击程序下载,下载源程序
详细程序请见源程序。