找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
1、MBUS_INIT库指令的HoldStart管脚(指针格式)是将SMART 200初始化为MODBUS从站时,递指定将S7-200 SMART的 V 存储区中指令的起始存储单元开始连续的一段存储区初始化为MODBUS协议的保持寄存器,MODBUS协议的保持寄存器的个数由管脚MaxHold指定。
2、比如MBUS_INIT库指令的HoldStart管脚你写的是&VB0,MaxHold管脚你写的是100,指令调用后,就会将 VB0-VB199之间200个字节的存储区定义为MODBUS RTU的保持寄存器。其地址对应关系是:
S7-200 SMART 侧---------上位机MODSCAN32
VW0 40001
VW2 40002
VW4 40003 依次类推
VW194 40097
VW196 40098
VW198 40099
3、MODBUS RTU 03功能码是读保持寄存器,你比如读保持寄存器40003,其实读到的数据是SMART-200的VW4。
4、MODBUS RTU 06功能码是写保持寄存器,你比如写保持寄存器40004,其实是将上位机数据写到了SMART-200的VW6。将VW6中的位、字节、字用于从站程序的逻辑控制,你就可以驱动SMART-200的线圈了。具体逻辑由你的工艺控制决定。
你也可以参考官方资料:
S7-200 Modbus RTU 通信 2016-04-06
http://www.ad.siemens.com.cn/service/article/S7-200/S7-200modbus/Default.aspx
您可从以下地址中下载帮助文档
依次点口 通信- 串口通信-MODBUS通信 中由详细介绍
能码 主站使用相应功能码作用于此从站的效用
1 读取单个/多个线圈(离散量输出点)状态。 功能 1 返回任意个数输出点(Q)的 ON/OFF 状态。
2 读取单个/多个触点(离散量输入点)状态。 功能 2 返回任意个数输入点(I)的 ON/OFF 状态。
3 读取单个/多个保持寄存器。功能 3 返回 V 存储区的内容。在 Modbus 协议下保持寄存器都是“字”值,在一次请求中可以读取最多 120 个字的数据。
4 读取单个/多个输入寄存器。功能 4 返回 S7-200 SMART CPU 的模拟量数据值。
5 写单个线圈(离散量输出点)。功能 5 用于将离散量输出点设置为指定的值。这个点不是被强制的,用户程序可以覆盖 Modbus 通信请求写入的值。
6 写单个保持寄存器。功能 6 写一个值到 S7-200 SMART 的 V 存储区的保持寄存器中。
15 写多个线圈(离散量输出点)。功能 15 把多个离散量输出点的值写到 S7-200 SMART CPU 的输出映像寄存器(Q 区)。输出点的地址必须以字节边界起始(如 Q0.0 或 Q2.0),并且输出点的数目必须是 8 的整数倍。这是此 Modbus RTU 从站指令库的限制。些点不是被强制的,用户程序可以覆盖 Modbus 通信请求写入的值。
16 些多个保持寄存器。功能 16 写多个值到 S7-200 SMART CPU 的 V 存储区的保持寄存器中。在一次请求中可以写最多 120 个字的数据。
另关于上位机部分,不知道你们是自已做的上位 还是 购买的现成的
如果是自己做上位机软件,需要做相关通讯协议的程序或驱动;现成的上位软件是自带SMART200的驱动的,如果想简单些 也可以走OPC 方式 需安装 SMART200 PC ACCESS
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!