签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
我在做S7-1200与微机保护器之间控制时,设备要求用05功能码写入FF00,地址是3000H(对应十进制为12888),但博途05功能码对应的是0-9999,有办法来实现么?
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1790350&b_id=50&s_id=0&num=7
这种情况真的很无奈,有些仪表就是这么不让人省心,非要用很大的地址明明前面还有很多空闲的地址,你可以看看有没有其它寄存器实现同样的功能,真找不到的话就加个网关吧。
地址没对应上吧。
看能不能叫微机保护器的厂家修改下地址。何必设置那么高呢?如果用上位机的话就不用担心这个问题了。
自由口试试?
综自系统的协议一般是定制的专有协议,人家只提供给自家的系统使用,第三方要使用必须取得同意。要么和厂家沟通修改数据地址(这个比较难以沟通),要么从其他途径获取,比如综自人机获取。
smart200可以
直接输入地址 试试 看可以不
对于一般的支持 Modbus TCP 设备,可能无法在其设备手册中查找到诸如 40001、30001 这种数据地址,而是以功能码 + 十六进制数形式的变量地址,这样有两种处理办法:
方法 1:将功能码 + 100 作为 MB_MODE,十六进制地址数转化为十进制数作为 MB_DATA_ADDR。例如 0x03 功能码,地址 0x00FF,这样就是 MB_MODE = 103, MB_DATA_ADDR = 255。
方法 2:通过判断功能码决定是读是写,决定 MB_MODE 为 0 读还是 1 写(2 写比较特殊,只用于不支持 5、6 号功能码的设备),然后将十六进制地址数转化为十进制数,然后对于不同的功能码,十进制数增加不同的偏移量,对于功能码 1、5、15 偏移量为 1,对于功能码 2 偏移量为 10001,对于功能码 3、6、16 偏移量为 40001(对于超过 9999 的地址,偏移量为 400001),对于功能码 4 偏移量为 30001。同样以 0x03 功能码,地址 0x00FF 为例,因为是读,所以 MB_MODE = 0, 0x00FF 转换为十进制为 255,加上偏移量 40001 就是 40256,这样 MB_DATA_ADDR = 40256。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录