『7x24小时有问必答』
遇到一个客户,使用台达PLC-DVP16EC,需要和流量计进行485通讯,客户反馈通讯不上。之前没用过台达通讯,因此研究一下,我在网上百度了一下,发现讲台达PLC的文章少之又少,在参考了一些官方文档和只言片语后进行相应总结。
官方示例:

设置通讯格式为9600/8/E/1,H87即16进制的87,转换成二进制为:10000111,从左到右顺序为B7->B0

b0:数据长度        
b0=0:7       
 b0=1:8

b2 b1:奇偶性 
b2, b1 = 00 :无 (None) 
b2, b1 = 01 :奇校验 (Odd)
b2, b1 = 11 :偶校验 (Even)

b3:停止位   
b3 = 0:1 bit     
b3 = 1:2 bit

b4b5b6b7 波特率
b7 ~ b4 = 0001 (H1) :110 bps
b7 ~ b4 = 0010 (H2) :150 bps
b7 ~ b4 = 0011 (H3) :300 bps
b7 ~ b4 = 0100 (H4) :600 bps
b7 ~ b4 = 0101 (H5) :1200 bps
b7 ~ b4 = 0110 (H6) :2400 bps
b7 ~ b4 = 0111 (H7) :4800 bps
b7 ~ b4 = 1000 (H8) :9600 bps
b7 ~ b4 = 1001 (H9) :19200 bps
b7 ~ b4 = 1010 (HA) :38400 bps
b7 ~ b4 = 1011 (HB) :57600 bps
b7 ~ b4 = 1100 (HC) :115200 bps

MODRD就是用来读寄存器的指令,功能码03,其中三个参数K1,K0,K32含义K代表十进制,后面的数字可根据自己的需求修改
K1:从站地址为1

H2102:数据地址为16进制2102
K2:读取数据长度为2个字

模仿实例进行编写:
和示例不同之处在于用到定时器进行轮询控制,更接近于实践。

图中读写 MODRD  K1 K0 K32,K0对应地址为40001,对此咨询过台达官方客服,告知用的是H2102之类的16进制地址。这样思路更清晰,两种方式均可,奈何网络资源太少,要么废话连篇,提取有用信息比较麻烦。

注:DVP16EC带一个RS485口,且的确支持MODBUS通讯,但此款PLC的Modbus程序指令最大只支持读取6个字长度,即12个字节。

检查发现客户的通讯程序无误,之后检查仪表的设定,更改设定后通讯正常。此番主要是了解一下台达PLC通讯的编程思路。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码