[工业通信] 两台S7-200 Smart PLC用modbus rtu进行通信示例程序和详细教程

[复制链接]
查看388 | 回复0 | 2021-10-24 17:41:42 | 显示全部楼层 |阅读模式
厂商
厂商: 西门子
主从modbus rtu通讯程序.zip (59.33 KB, 售价: 2 工控币)

两台S7-200 SMARTmodbus通讯,通过网口修改查看

一:需要准备的硬件,两台S7-200 SMART ST40 plc,三条网线,一个多口交换机,一根公口3,8直通线,直流电源220V AC转24V DC,各个连接24V电源到PLC导线。

二:软件,step7-micro/win smart V2.0,参考手册视频

三:编写从站modbus通讯程序


调用modbus从站库,

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_f6158b7df576fd2f.png

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_7977efd03a33b200.png

注意初始化定义从站各个参数的含义

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_5cb4b2b4efc65b08.png


定义从站完成、错误参数

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_e535bff04dc62fa3.png

定义的VW0数据传送到QW0输出接收传过来的数据流

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_b21a17a2932f0a0.png

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_916e21eab5218da9.png

四:编写modbus主站通讯程序

调用主站库

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_331e9a9311cb5e62.png

,定义比特率、校验、通讯口、超时、完成错误位

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_110c6aa45d0dbe9e.png

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_216321163d47848d.png

下面依旧要调用主站库

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_89a4f0962208441.png

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_40f8ae5b34bb48ae.png

首次扫描置位M3.0,复位M3.1,M3.2。M3.0,M3.1为主站库使能端,上升沿有效,定义的从站号还有上面的参数(比特率、校验、通讯口)与从站相符,上面是只读输入,16位,从i0.0到i1.7,取地址为VW0,下图为各个参数的含义

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_3c908e70d509d1c3.png

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_c7edecb4f477eb29.png

这一段程序当M0.1(只读输入取地址)无错误完成时才接通,此时复位M3.0,M3.1,M0.2,置位M3.2,下一个V区保持寄存器开始,同样上升沿有效,从站对应3,可读写,从第一个定义的V区地址开始,连续后面5个地址位

下面这段是当上述完成无错误M0.2运算为1,MB3位0是接通,复位M3.2,M0.1,使上述流中断,前一个modbus完成位置0复位,M3.1又重新置位继续进第一个modbus使能端,如此保持循环。轮询进行通讯!

注:此modbus库存储区为如下设置

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_410085805d23c5c4.png

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_e3b52b9539e3d104.png

四:测试通讯程序,完成程序编写后,把程序下载到各个PLC中,注意电脑与各个PLC的IP地址设置,本机IP地址为192.168.2.10,子网掩码:255.255.255.0,连接PLC还有电脑网线到交换机里,同一网段可以使用ping IP地址的方式测试网络通信质量。

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_373a817a8962eaa6.png

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_f94f6fdd0db08e8e.png

在主站状态图表 %E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_7808786b99a5a373.png 中定义如下:

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_ca39e67710ce5a8d.png

在调试菜单里点击 %E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_6ea4e77f60ec9bfc.png ,一开始可能出现

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_7cff09b0a67ec1f1.png 点比较,不比较继续为灰

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_9bd300d0cbe87019.png 程序与PLC中一致,继续

在图表状态里改变,这两项可以反映主从站的通讯是否正常

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_d53285ef1336330e.png

首先在从站上准备一根从PLC L+(24V)到各个输入I点接线,可以随意点亮各个输入点比较长的导线,点亮的为i1.1,i1.5,小伙伴们你们猜对了么,注意高低位顺序

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_c91a7c961224e4eb.png

现在看保持寄存器

在里面写入一些数据 %E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_ac6831bac6548061.png ,在从站PLC点位上可见

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_71717a1807fc6341.png

%E4%B8%A4%E5%8F%B0S7-200%20smart%E8%BF%9B%E8%A1%8Cmodbus%E9%80%9A%E8%AE%AF%EF%BC%8C%E5%B9%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9B%91%E6%8E%A7_html_694c0cd80f03a1d1.jpg

小伙伴们,再来一张总览图看看好么?

1.jpg

这便是通讯的全过程,大家都可以来试试看还有啥其他的好办法可以实现!

回复

使用道具 举报

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

本版积分规则