提问大佬关于MB-SERVER 点击:184 | 回复:4



p小l子c

    
  • 精华:0帖
  • 求助:3帖
  • 帖子:3帖 | 6回
  • 年度积分:1752
  • 历史总积分:1752
  • 注册:2023年8月31日
发表于:2023-09-26 09:00:18
楼主
求助帖50分-已结帖

我想用这个块既读取M寄存器同时读取Q的值可以写两个块放一起吗image.png



JSdanzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 297回
  • 年度积分:41
  • 历史总积分:5299
  • 注册:2012年9月22日
发表于:2023-09-27 07:57:41
1楼

分配数据区域及注意事项

  • 用户最多可在不同数据块中定义八个数据区域,每个数据块只能包含一个数据区域。单个MODBUS 请求只能对恰好一个数据区域进行读写操作。每个数据区域对应于一个 MODBUS 地址区域。可以在MB_SERVER背景数据块的静态变量中"Data_Area_Array"中定义数据区域。

  • 如果要使用的数据区域不到八个,则所需数据区域必须紧密相连,没有间隙。在处理过程中,数据区域中的第一个空白条目会终止数据区域搜索。例如,如果已定义字段元素 1、2、4 和 5,由于字段元素 3 留空,则"Data_Area_Array"只会识别字段元素 1 和 2。

  • 如果 MODBUS 请求到达时尚未定义相应功能代码的 MODBUS 数据类型的数据区域,请求会按之前的指令版本处理,即直接访问过程映像和保持性寄存器。如果已为功能代码的 MODBUS 数据类型定义了数据区域,则指令 MB_SERVER 可对该数据区域进行读写操作。具体是读操作还是写操作取决于作业类型。如果有两个区域都是03呢,是否会读写搞混了?测试一下功能码1和15可以放在2个功能区吗,并且起始地址和长度一样

  • 单个 MODBUS 请求只能对一个数据区域进行读写操作。如果要读取覆盖多个数据区域的保持性寄存器,则需要多个 MODBUS 请求。


JSdanzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 298回
  • 年度积分:42
  • 历史总积分:5300
  • 注册:2012年9月22日

关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:742帖 | 5642回
  • 年度积分:31
  • 历史总积分:84597
  • 注册:2004年5月28日
发表于:2023-09-29 23:24:49
3楼

我想用这个块既读取M寄存器同时读取Q的值可以写两个块放一起吗

你所谓的同时是什么意思?有两个客户端同时对PLC进行读写操作吗?

Smile-lyc

  • [管理员]
  • 精华:138帖
  • 求助:51帖
  • 帖子:3557帖 | 22429回
  • 年度积分:1360
  • 历史总积分:148391
  • 注册:2006年8月04日
发表于:2023-11-13 16:14:06
4楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。

4、2023加油!!




热门招聘
相关主题

官方公众号

智造工程师