求助:台达plc和上位机modbus通讯的问题…… 点击:9633 | 回复:48



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2007-03-27 15:48:00
楼主
求助:台达plc和上位机modbus通讯的问题……

LD   X0
OUT  M1120
MOV  H86     D1120
LD   X0
OUT  M1143
END

我在程序里这样写了,然后用计算机发送报文01 03 00 00 00 02  6F F7 ,但是返回报文却是01 03 07 00 72 ,我想07应该是错误代码吧,但是又找不到相应的文档,是不是程序里面还应该有别的语句,请高手帮忙指点,谢谢……



通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-20 10:09:00
21楼
数据格式应该是这样的:01 03 00 00 00 02 C4 0B 这串代码是modbus调试软件modbus poll自动生成的,

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-20 16:25:00
22楼
三月到五月?初学者花些时间是应该的。当时我刚开始干时也花了快一个月。


“用计算机发送报文01 03 00 00 00 02 6F F7”错误的。

正确答案:“01 03 00 00 00 02 C4 0B”

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-20 20:20:00
23楼

nopassword

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 12回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2007年5月21日
发表于:2007-05-21 10:59:00
24楼
谢谢通讯网的回复,我用你给的报文试了,返回还是01 03 07 00 72 ,不知道什么意思,我想应该是错误代码吧,但是又没有错误代码的说明,我也不知道怎么判断,我再试试其他格式的再汇报吧。

nopassword

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 12回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2007年5月21日
发表于:2007-05-21 11:10:00
25楼
用H88格式即RTU,7,N,2直接没有返回报文,用H81格式,即RTU,8,N,1,也是没有报文返回,连开始那个01 03 07 00 72 也没有了,是不是先说的不支持modbus slave啊,那如果别人后台想用modbus slave通讯也是不能的了,只能用《台达DVP系列PLC 通讯协议1.0》通讯了吗?

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-21 12:27:00
26楼
01 03 07 00 72 从返回码的格式来看,应该正确,把你串口的2-3脚用线短接起来,自收自发。确认接收字符是:01 03 00 00 00 02 C4 0B

有时候发送校验码时不注意时容易颠倒,即发成 01 03 00 00 00 02 0B C4 ,做这个实验就是确保你的接收端确实是按顺序收到字符串的。

nopassword

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 12回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2007年5月21日
发表于:2007-05-21 20:16:00
27楼
一直忙,这个问题保留下,我出几天差,回来再试验再请教,多谢通讯网了啊!!

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-22 09:17:00
28楼

GOOD LUCK

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2006年11月30日
发表于:2007-05-22 12:15:00
29楼
我想学PC机的上位机软件和PLC的通讯,可是不知道找谁学习.请问有这一方面的老师教吗?我是做自动化设备的,

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-22 12:28:00
30楼
查了一下资料,台达plc,plc为slave时,不支持modbus rtu,只支持modbus ascii。做主时,支持modbus rtu。其一。其二:台达内部地址D0000对应modbus 44097。发送以下字串试试。9600 7,e,1.从机地址为1. 本串是读出D0内的数据。

自动控制plc

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 27回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2007年1月04日
发表于:2007-05-22 14:55:00
31楼
不知道楼上是从哪里查出来的通讯地址,我手头上的资料显示台达PLC内部D0对应的通讯地址为H1000,换算成10进制为4096刚做完实验。

自动控制plc

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 27回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2007年1月04日
发表于:2007-05-22 14:56:00
32楼

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-22 15:12:00
33楼
对应的mosbus地址嘛!modbus的零地址不是40000吗?

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-22 15:16:00
34楼

自动控制plc

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 27回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2007年1月04日
发表于:2007-05-22 15:20:00
35楼
台达PLC有专门的通讯地址,对应关系如下。
D 000~256  word  1000~10FF 
D 256~511  word  1100~11FF 
D 512~767  word  1200~12FF 
D 768~1023  word  1300~13FF 
D 1024~1279  word  1400~14FF 
D 1280~1535  word  1500~15FF 
D 1536~1791  word  1600~16FF 
D 1792~2047  word  1700~17FF 
D 2048~2303  word  1800~18FF 
D 2304~2559  word  1900~19FF 
D 2560~2815  word  1A00~1AFF 
D 2816~3071  word  1B00~1BFF 
D 3072~3327  word  1C00~1CFF 
D 3328~3583  word  1D00~1DFF 
D 3584~3839  word  1E00~1EFF 
D 3840~4095  word  1F00~1FFF 
D 4096~4351  word  9000~90FF 

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-05-22 18:02:00
36楼
。。。。。。。。。。。。。。。。。。。。

nopassword

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 12回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2007年5月21日
发表于:2007-06-14 11:04:00
37楼
佩服通讯网,我是要用后台机与PLC通讯,所以PLC是SLAVE的,那就是不支持RTU了,那我就放弃了。
台达PLC我也不很熟悉,资料方面感觉资料方面台达编不很好,很多东西写的混乱不明了,查起来费力,也忙,没有太多时间,象MODBUS不支持SLAVE不知道通讯网是从哪里找到的,应该是说明书上的吧,可惜我没有找到,惭愧,现在正做modbus ascii的,感觉也挺烦的。

cygsd

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2005年10月06日
发表于:2008-04-30 11:23:37
38楼
台达PLC 默认的通讯协议是9600,7,E,1,ASCII,默认站号01,LRC验证。头码=“:”,尾码=H0D+H0A。

PLC作从机时,通讯协议不用修改。主机通讯协议按PLC协议设定好就行了。

例子:读D0数据

主机发送数据=":010310000001"+"EB"+CHR$(13)+CHR$(10)

主机收到数据=":0103020000"+"FA"+CHR$(13)+CHR$(10)

zdszy2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:49帖 | 232回
  • 年度积分:1040
  • 历史总积分:1467
  • 注册:2006年3月22日
发表于:2008-05-12 14:29:10
39楼
收获很大

fenger_lfl

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2009年4月21日
发表于:2009-06-25 11:45:58
40楼

还在此努力学习中~

走不通呀~


热门招聘
相关主题

官方公众号

智造工程师