modbus 在线服务器,【分享】关于MODBUS TCP V4.0的使用(一) MB 服务器

本文介绍了如何在S7-1211V4.1 PLC上创建MODBUS TCP服务器,包括设置IP地址、创建读写服务器、配置连接数据块、定义读写寄存器及主程序。服务器可以响应任意客户端连接,支持并发连接,并详细说明了各个配置步骤和参数含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先做个MODBUS TCP服务器。服务器在这里相当于从站。它响应来自客户端的访问。

(我觉得不要再使用主站-从站的概念了。这里就是服务器-客户端的连接,是非常自由的。一台PLC既可以是服务器,也可以同时作为客户端;既可以“安装”一个服务器,也可以“安装”多个服务器;可以通过以客户端身份汇总;以服务器身份响应转发给任意客户端。)

首先,插入一个新PLC(我用个最便宜的S7 1211 V4.1;新的固件)

6a41d45dc03c206b548763939d0860d3.png

图1

设置IP地址和路由网关。

0b749f3854df54afea1c9995284af4e5.png

图2

为了测试传输性能,启用时钟字节。因为这里没有用到掉电保持,选用MB0。用它来模拟数字端口的变化。

2f9e9f05e006cdf84d41e420efa97da7.png

图3

在这个PLC上做两个服务器,一个用于客户端读取;一个用于客户端写入。

首先,插入个FC(取个名字,MB_Read1),然后从右侧指令树通讯-其他拖入MB_SERVER.

0d577c96b07d4c0bbca890db1120f637.png

图4

其次准备好MB_SERVER功能的一些数据块。

1、连接数据快CONNECT DB。注:新版将所有要用到的连接数据参数都整合在一起了,可以方便地集中修改。

建立个DB(优化的)取名CONNECT_RWDB;为客户端读做个连接1.(取名ReadCon1,在数据类型中直接输入TCON_IP_v4,回车)

fbeddddc7ee124775cfd1e780ec96f78.png

图 5

连接ID选一个没有被使用的连接号,

连接类型固定为11(16#0B)

主动连接ActiveEstabilished=false(服务器总是等着客户端连接)

远程连接地址IP,如果你要指定固定的客户端来访问,就输入它的IP地址,我这里全为零,就是服务器会响应任意客户端连接访问。

远程端口号RemotePort: 作为服务器不需要这个参数=0既可

本地端口LocalPort:标准的;预留给ModBus 的端口号是502。但是,如果你没有使用WEB(80端口);没有使用Mail(25端口)没有使用S7等通讯,所有端口号都是可以使用的。所以,下一个添加的MB服务器就使用503;以此类推。这样,当客户端要访问这个读服务器就是IP地址:502;要连接写服务器就是IP地址:503;所有服务器都是可以并发(被同时)连接的。

其中,interfaceid要看一下接口的硬件标识符

ed19abd4db99081a01d2f6b638a467f1.png

图6

2、建立一个用于读写的保持寄存器DB,因为用到指针,该DB要求是(非优化的)标准DB。

你可以将读写数据分别放在不同的DB中,也可以放在一起。

b7e15dce9386c3158ec6dd5fac5a2ab8.png

图7

3、建立一个用于功能块输出的DB。可以自己建立个数据类型"MB_OutSta"

d7b9be9e1c0945fc1a605674ebabe029.png

图8

4、将参数拖到功能块的IO位置,如图:

e882f7bed3343dd9d7204150e5a57980.png

图9

5、最后简单地写一下主程序,调用MB_Read1(FC1)

bcf1e889337f8996814bd87da7fe1d9f.png

至此,MODBUS TCP服务器就写完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值