找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
不需要建立三个 Modbus_Slave 块。在 S7-1200 作为 Modbus RTU 从站时,一个Modbus_Slave 指令即可同时处理 Bool、Int、Word 等多种数据类型的读写请求。
只需要在一个Modbus_Slave 指令中,通过配置 MB_HOLD_REG 参数指向一个包含所有数据类型的数据块(DB)或存储区,即可实现混合数据的映射。MB_HOLD_REG 参数指向一个连续的存储区域(通常是数据块 DB)。Modbus 主站请求的不同功能码(如读线圈、读保持寄存器)会根据地址映射到该存储区域的不同部分。需要在同一个 MB_HOLD_REG 指向的数据块中,按顺序排列您需要的数据类型。
配制方法:
创建一个全局数据块(例如 DB_MbData),勾选“优化块访问”。
在 DB 中定义变量,例如:
Bool_Array (Array[0..15] of Bool)
Int_Value (Int)
Word_Value (Word)
在 Modbus_Slave 指令中,将 MB_HOLD_REG 指向该 DB 的起始地址(例如 P#DB_MbData.DBX0.0 BYTE 0 或直接选择 DB 块)。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城