hydbw
不知道该用什么命令读,用MODRD命令输入不了40100地址,用RS 命令好像又不合适,请问该如何访问外部设备的40100地址?
公孙小天
把前面的4去掉,看成十进制的100,然后看你设备的定义如果寻址是从40001开始的,那么就是第99个地址,把99转成16进制地址H63,MODRD或RS指令里面地址用H63即可,如果寻址是从40000开始的那么就是H64.
dgl123
楼主,能发个线路图参考一下吗?
回复内容:
对: 公孙小天 把前面的4去掉,看成十进制的100,然后看你设备的定义... 内容的回复!
谢谢了,modbus的地址40100是十进制的? ,还有4DF0110地址怎么读取?
不明白的话可以看一下台达PLC编程手册中的PLC装置通讯地址表,举个例子,D0的MODBUS通讯地址有十进制和十六进制两种,十进制是401027(6位扩展地址),十六进制是H1000,其中十进制地址中最高位的4表示的是地址分类是4区的保持型寄存器,而后面的01027才是地址的编号,只不过十进制是从1开始编号,而十六进制是从0开始编的而已。至于4DF0110就不明白了,你确定是地址?
对: 公孙小天 不明白的话可以看一下台达PLC编程手册中的PLC装置通... 内容的回复!
恩,没错,可以用了,就是H63,十分感谢。4DF0110实际就是浮点数的意思,实际地址是110,就是十六进制6E-1=6D。
还想请教下我要读取几个分开的地址,如40100,40110,40001地址,用MODRD的话好像就没法同时读到了,能有什么好办法解决吗?RS指令没用过,怎么感觉都是本机的地址
一条MODRD指令的读取长度最多是6个WORD,如果不够,那么换用MODRW加03功能码来做,最多可读16个WORD(注意如果用COM2,ASCII模式则是8个WORD),如果间隔超过16了,只能另写一条读取指令了,具体见手册。
对: 公孙小天 一条MODRD指令的读取长度最多是6个WORD,如果不... 内容的回复!
谢谢,我要用到8个字的长度吧,关键就是地址不是连续的,分别在40100,40110,40001,另写一条读取指令感觉会重复读,会冲突呀,有什么方法避免呢,手册上没翻到这方面的东西
多条通讯指令用不同的触发条件,然后用比如定时器、计数器等来错开这些触发条件的时序,你可以到下面的网址下载编程实例,从目录中找一下通讯程序的范例,拿来改一下就能用了。
http://www.delta.com.tw/ch/product/em/download/download_main.asp?act=3&pid=3&cid=1&tpid=10
对: 公孙小天 多条通讯指令用不同的触发条件,然后用比如定时器、计数器... 内容的回复!
我也想过用定时器,但没想到具体怎么用...,您发的网址里我找了下,有RTU 485 的例子,但好像没有找到有分时读的例子。实在不行只有通过触摸屏来读了
sz22970
请问用MODRW的02功能吗怎么读10001呀
pyjzz
在PLC程序中先将40100,40110,40001地址内的数据传送到你没有用的相近字里面(如:40100传到40111;40110传到40112,40001传到40113),然后再读40111、40112、40113三个字不就可以了。
oydaosheng
本人正在测试ABB ACS550变频器,PLC用台达的 也是通信问题还没好。
秦雨纷乱
有联系方式吗?QQ1847121522
nizhidao
受益匪浅,照着这个帖子改了程序,可是……任然通讯不了啊哈哈哈
119434587
是是是是是是是是是是
leechonghua
引用 nizhidao 的回复内容: 受益匪浅,照着这个帖子改了程序,可是……任然通讯不了啊哈哈哈
一冬无雪
qweqwe3252
brillian0315
xiexiefenxiang