找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
1问
如果不是在工业现场,可以按你说的那样临时做实验;
但是在工业现场,你那种接法不符合 RS485 物理风格连接规范,不能说通讯不上,但网络搞干扰能力很差,不能保证通讯质量;
规范的做法是,从一个口接到另一个口,再从另一个口接到下一个口,形成一个线性网络;并且在网络的两个端的终端电阻打到 ON 位;
PROFIBUS现场总线是典型的 RS485 网络,物理布线可参考《PROFIBUS现场总线安装指导》
https://support.industry.siemens.com/cs/document/84630278/
2问
Modbus_Comm_Load 是能 CM 的串口进行初始化的,只调用一次,Modbus_Master 指令可以是多个,比如要读三个表,则需要三个,如果3个表有读有写则需要6个,多个Modbus_Master 指令需要轮循,请参考
《官方示例 RTU 轮巡编程全攻略》
https://1847.siemens.com.cn/course/detail/2/1811542/1810838
补充:
首先定义接收数据的接收区;比如接收从从站读来的数据的数据块是 DB4,则在 DB4中连续定义三个数组,分别对应1、2、3、3个从站的接收区。第一个数组 大小为 20个字,第二个数组大小为 30 个字,第三个数组大小为 20 个字;DB4 数据块定义成非优化的;
则:
DB4.DBB0-DB4.DBB39 共40 个字节,20个字为 1号从站的接收区,此时对于 1号站读的 “MB_MASTER”指令的主要管脚取值如下
MB_ADDR: 1
MODE: 0
DATA_ADDR 40001
DATA_LEN 20
DATA_PTR P#DB4.DBX0.0 WORD 20
DB4.DBB40-DB4.DBB99 共60 个字节,30个字为 2号从站的接收区,此时对于 2号站读的 “MB_MASTER”指令的主要管脚取值如下
MB_ADDR: 2
MODE: 0
DATA_ADDR 40001
DATA_LEN 30
DATA_PTR P#DB4.DBX40.0 WORD 30
DB4.DBB100-DB4.DBB139 共40 个字节,20个字为 3号从站的接收区,此时对于 3号站读的 “MB_MASTER”指令的主要管脚取值如下
MB_ADDR: 3
MODE: 0
DATA_ADDR 40001
DATA_LEN 30
DATA_PTR P#DB4.DBX100.0 WORD 20
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城