详解modbus TCP通讯,并利用其实现欧姆龙PLC和西门子PLC的通讯

 引言

       大家好,之前需要更新的MQTT通讯【2】因为硬件不足还不能发布出来,但最近在项目中涉及到西门子和欧姆龙之间的modbus TCP通讯,想到modbus TCP通讯是个非常常见并广泛使用的通讯协议,今天就结合最近做的测试给大家好好讲解一下,先提示一下,这边只给大家讲解如何实现,至于报文是什么,如何用socket来编写功能块或dll这边不会讲解,这块我会根据私信的小伙伴数量来考虑要不要出一篇如何用ST语言来编写modbus TCP功能块的博客。

硬件

        先请出我们今天测试的主角,他们分别是西门子200smart(IP地址192.168.250.200),西门子1200(IP地址192.168.250.100),欧姆龙NX102(IP地址192.168.250.1),电脑ThinkPad T14(IP地址192.168.250.188),电脑天选3(IP地址192.168.250.88),设置他们的IP在同一网段,

测试内容

       我们将测试以下三大内容:

     (1)使用modbus TCP的仿真软件实现modbus TCP通讯;

     (2)使用仿真软件分别实现与西门子200smart及欧姆龙NX102的通讯;

     (3)实现西门子200smart和欧姆龙NX102的通讯,西门子1200和NX102的通讯;

仿真软件的modbus TCP通讯

我们先分别在两台电脑上开启modbus服务器和客户端,这边以ThinkPad这台电脑为服务器如下图

天选3这台电脑当成客户端,去连接服务器,如下图

接下来我做读写线圈,读写保存寄存器测试,输入寄存器,输入线圈测试

输入线圈测试(只读)

客户端:

服务器:

结果:读取成功!

输出线圈测试(读写)

客户端:

服务器:

结果:读写成功!

输入寄存器(只读)

客户端:

服务器:

结果:读取成功!

保持寄存器(读写)

客户端:

服务器:

结果:读写成功!

仿真软件和PLC的通讯

与西门子的通讯

        首先我们先去modbus TCP的输入线圈,输出线圈,保持寄存器和输入寄存器分别对应了西门子200smart的那些存储区,通过查询帮助我可以发现,分别对应I区,Q区,V区,AIW区,有了这前提我们可以开始做测试,先做西门子为服务器的测试。

西门子为服务器的测试

我们要在200smart中使用MBUS_SERVER 指令,并写入以下程序;

下载进PLC中,打开modbus客户端,输入IP地址,端口号,连接,并进行Q区和V区的读写测试

Q区测试

客户端

服务器

结果:读写成功!

V区测试

客户端

服务器

结果:读写成功!

与欧姆龙的通讯

欧姆龙为服务器的测试

欧姆龙PLC本身并没有包含modbus功能块,这就导致我们需要寻求欧姆龙官方技术提供的modbus TCP功能块,里面包含客户端和服务器功能块(版权原因这边就不给大家展示了);当然我们也能自己利用ST语言编写功能块,这对于一般的上位机工程师来说并不难,只需要了解ST的编写规范和socket的通讯方式,以及modbus TCP的报文,这块之后有时间会发篇博客来详细的说明,大家可以敬请期待一下。

好的,要实现服务器通讯,我们要在NX102中写入如下程序:

接下来我们利用仿真软件对寄存器和线圈进行读写测试

寄存器读写测试

客户端

服务器

结果:读写成功!

线圈读写测试

客户端

服务器

结果:读写成功!

欧姆龙为客户端的测试

在欧姆龙里我们要写入连接、读写相应功能码的程序;这边的话由于版权原因我只给大家读取寄存器的程序。

读取寄存器测试

客户端

服务器

结果:读取成功!

写入寄存器测试

客户端

服务器

结果:写入成功!

读取线圈测试

客户端

服务器

结果:写入成功!

欧姆龙和西门子的通讯

欧姆龙和西门子200smart的通讯

本次测试中西门子将作为服务器,欧姆龙作为客户端,在对应的PLC写入相应的程序,程序如上面程序。

线圈读写
读写Q区
读写Q区

寄存器读写

选择前十个寄存器采取读取,后十个采取写入

结果:欧姆龙和西门子200smart通讯成功,读写成功!

欧姆龙和西门子1200的通讯

这边在西门子中我们写入如下程序:

并建立两个DB块,一个是读写的数据,一个是服务器参数

服务器参数的DB块
读写寄存器对应地址

我们将欧姆龙里程序的服务器IP改一下,连接成功后,进行读写测试,将前五个字读取,后五个字写入,看一下最后效果

读取写入字
写入的五个字的数据
读取的五个字的数据

结果:欧姆龙和西门子1200通讯成功,读写成功!

  • 28
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值