登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:用台达PLC读数据可以,但是写数据不行怎么回事??

点击:4843 回复:8

 前阵子做的PLC与变送器的通讯,读程序我都写好了,用MODRD 完全可以通讯,写我觉得就是换个MODWR的命令,就没写了。结果今天突然用了MODWR写命令,不能写进去,换了很多个地址都不行。这是怎么回事? 我看了例程也就是换个指令啊,前后的设定都没变的,请问为什么,是哪里还要设定吗??
17-07-07 12:40
PLC型号DVP20SX2
17-07-07 12:41
附件 6.jpg
我刚刚看了一下,在D1089-D1096中PLC发出的都是有数据的,说明程序写对了,但是D1070-D1077中PLC接受的数据是没有的,说明是变送器没有返回值,这是可能是什么问题呢???求指教
17-07-07 12:57
这说明你发过来的数据变送器不认识,PLC和变送器之间是通过什么通讯方式通讯的,不要违反通讯协议,注意地址,通讯参数的配置。
17-07-07 13:35
你好,是用的MODBUS通讯协议,变送器是标准的MODBUS。而且我用的命令也是MODBUS 的指令MODRD和MODWR,最关键是我用读取命令MODRD是完全正常的,多个地址位都可以正常读取,PLC发出的和接受的D存储区都是有正常数值的!!但是用写指令MODWR就没有PLC接受到的返回数据了。。百思不得其解,。。
17-07-07 13:41
注意modbus地址的寻址区
00001至09999是离散输出(线圈)
10001至19999是离散输入(触点)
30001至39999是输入寄存器(通常是模拟量输入)
40001至49999是保持寄存器
读和写是在不同的寻址区,你读的位地址是1XXXX的,那你写的时候就因该是0XXXX,你要照着原地址写是写不进的,先确定你要写的数据是什么类型,然后照着地址区往里写或者读,注意看寻址区是可读可写,还是只读只写的。
人家不支持写,你往里写就写不进去,人家不让读,你读就读不到,不是你想干嘛就能干的。
17-07-07 14:10
你好,我不太明白“ 读和写是在不同的寻址区,你读的位地址是1XXXX的,那你写的时候就因该是0XXXX”这句话。 我是一台变送器和台达PLC做485接口连接, 要读写它的保存寄存器。在西门子PLC上的地址我是用4000X 这样的4开头的,但是是在台达的MODRD命令里  我写的就是去掉4开头剩下的,能够正常读。 而且在西门子PLC里我对一个项目比如输入数值 的读取都是一个地址,不知道你说读和写不同是什么意思。。。???
17-07-07 14:28
我用PLC和触摸屏用modbus通讯时,位状态读是1开头的地址是可以读进来的,但是你照着这个地址是写不过去的,写要卸载0开头的地址上去。
比如读这一位状态需要读10003地址,你可以看到他的状态,但是你要修改他就不能用这个地址,要写在00003上去就行,这就是存储区的读写限制,变送器一般都是读保持寄存器,写的话(整数)你可以换个3地址试试。
有些是只读的,有些可读可写,有的只能写,明白我的意思吗,还有就是注意数据类型,是整数还是bool
17-07-07 15:15
再告诉你一个方法,变送器一般都自带调试软件的,用它的软件发送读写指令,然后用串口助手监听串口数据,分析报文,看人家官方是用什么指令写到了什么地址上。
17-07-07 15:28

工控新闻

更多新闻资讯