签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
工程描述:选用200smart(服务器)与第三方设备(客户端)modbus tcp通讯,第三方设备(客户端)已经确定了通讯协议,只能采用04与16功能码读写服务器数据(见下图)。
问题:200smart的数据有250个放在V寄存器供客户端读取,客户端只能支持04功能码而不能改到03功能码,请问有什么方法可以让客户端读到200smart内的寄存器?比如加什么硬件等
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1610344&b_id=64&s_id=0&num=6
还有不支持03功能码的MODBUS上位机?前所未闻。
只能支持04功能码,也就是只能读30001 开始总共120个,AIW0-118. 虽然AIW0-118中间有很多地址在程序中是空闲的,但是这些地址并不能接受V存储器传输的数据,所以使用30001 开始的某些地址来传输V存储器的数据是困难的。
03功能码是MODBUS的标准,我就不相信做上位机的能做出没有03功能码的MODBUS程序来。不支持03功能码没道理。你还是去与上位机商量,提供03功能码。16功能码没有问题。
读和写的区别不是很大的,你只要把客户端的信息读上来,那写入客户端也就不是问题了
说实话,作为上位机,他没有选择不支持03功能码的权利,除非你们与他们签订的技术协议答应了人家的不合理要求。
作为上位机,他只有选择不支持不符合国际标准的通信协议。这些都是行业默认的规矩。
按照一般常规,双方既然选择了modbus tcp协议,你只要严格按照这个协议做,不出错就没有你的事。当然合同和技术协议规定的也要遵守。
设计肯定有他的合理性,查了下SMART系统说明书,模拟量模块最多56个数据。肯定不需要全部读,可能就只是你几通道的数据,你说的2百多个数据肯定大部分16功能写的。一个CPU能带载这么多模拟量看300或400能行么?
使用两台PLC,其中一台接受16功能码并用模拟量输出模块接另一台PLC的AI,把要04功能码的数据用AO传过去
是否可以反过来,200SMART作为客户端,第三方设备作为服务器
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录