chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
楼主  发表于: 2014-01-10 15:00
设备1:台达DVP40EH00T2(RS232,8针圆形接口,预设与某触摸屏进行通信)
(RS485,2接线柱,预设接RS232-RS485双向转换器的RS485端口)

设备2:某测量仪(RS232C,插头为RJ45通用8针网线水晶头,预设接RS232-RS485双向转换器的RS232端口)

设备3:RS232-RS485双向转换器

工程目标:使用PLC向测量仪发送串行指令,测量仪接受到串行指令后回传给PLC测量数据,PLC自动将回传的数据处理成10进制数并存储。

1


测量仪通讯设置为固定模式,无法更改,9600,EVEN,1,8。此测量仪需要发送串行指令才能输出测量值。指令为M0,0 CR

2


上图是我使用串口调试程序连接测量仪,输入4D 30 2C 30 0D,对应ASCII码为M0,0 CR
返回的数据如接收数据区所示,对应ASCII码为M0,+0023.833,+0023.841CR
我需要的就是这两个返回的测量值,+0023.833,+0023.841


3
  

上图是我是用电脑自带的超级终端连接测量仪,直接输入M0,0
返回的数据如图所示,M0,+0023.833,+0023.841

我的问题就是在PLC编写通信指令,发送串行指令M0,0给测量仪,然后接受这两个测量的数据回到PLC。哪位大神帮忙看看。我以前没写过。谢谢了。再帮看看通信的接线是否有问题。
[ 此帖被chinazhu6666在2014-01-10 15:27重新编辑 ]
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
1楼  发表于: 2014-01-10 15:34
在线求大神
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
2楼  发表于: 2014-01-11 09:31
谢谢啊,关键是如何把指令M0,0CR发送出去,楼上说对应好相应的物理地址,就这个不太会啊
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
3楼  发表于: 2014-01-11 16:27
图片:
看看这段程序,DO到D3没数据回传啊。哪的问题
使用的是ASCII模式,8位数据传输。
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
4楼  发表于: 2014-01-12 10:50
引用
引用第6楼sjm213于2014-01-11 17:19发表的  :

接收位数设长一些。
RS D100 K5 D0 K25

额,我设长了,还是不行啊,该不会是这种通讯方式不行吧,也帮助看看图片1我那样接通信线是否有问题啊
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
5楼  发表于: 2014-01-13 09:23
图片:
引用
引用第8楼sjm213于2014-01-12 21:12发表的  :

可以把电脑当成测量仪,RS232C接口通过这条线连接到PLC上,然后通过串口调试软件发送数据看PLC是否正常接收,或从PLC发送数据看调试软件是否正常显示。
关键点在于“RS232-RS485双向转换器”

楼上大哥说的检测方法很好啊,谢谢。我测试下双向转换这条通信线(这条线是我自己做的),还有这个双向转换器,也需要测试(帮看看这个转换器是否可行)。另测量仪和电脑之间的通信是测量仪公司提供的一条通信线,一端是232C,一端是DB-9的
[ 此帖被chinazhu6666在2014-01-13 09:35重新编辑 ]
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
6楼  发表于: 2014-01-13 09:25
图片:
引用
引用第9楼chen_0106于2014-01-12 21:37发表的  :
协议 MOV H787 D1120 好像不对呀,9600 8 E 1 ASCII 应是MOV H86 D1120呀。

楼上的哥说的H86是没结束字和起始字要求的,看这个图,那测量仪要求连接PLC通信时必须加加字符STX,ETX,看看我设置的是否正确
给测量仪发送的串行指令是:M0,0CR
所以PLC给测量仪发送的数据内容我就设置成:STX  M0,0  CR  ETX
对应ASCII码:
STX  :H02
M:H4D
0:H30
,:H2C
0:H30
CR:H0D
ETX:H03
[ 此帖被chinazhu6666在2014-01-13 09:48重新编辑 ]
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
7楼  发表于: 2014-01-13 15:45
引用
引用第12楼sjm213于2014-01-13 14:18发表的  :


用电脑发送数据时并没有加STX,ETX,测量仪却能正常返回数据??

另,用串口软件与PLC接收/发送数据的测试是否完成,结果如何?

用电脑与测量仪之间通信时,使用串口调试发送数据没有加STX,ETX的,输入4D 30 2C 30 0D,就出数据了。电脑自带的超级终端连接测量仪,直接输入M0,0,就出数据了。
我笔记本没DB-9的串口,所谓的电脑是台式机。台式机有DB-9的串口。使用串口软件与PLC接收、发送数据我需要重新做线。台达的这台PLC有2个端口,8针圆形RS232和2接线柱RS485。做8针圆形RS232与DB-9的线是一种方式,做RS485和DB-9的线是另一种方式。
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
8楼  发表于: 2014-01-14 11:20
引用
引用第12楼sjm213于2014-01-13 14:18发表的  :


用电脑发送数据时并没有加STX,ETX,测量仪却能正常返回数据??

另,用串口软件与PLC接收/发送数据的测试是否完成,结果如何?

我现在是用PLC的RS485,通过RS232-RS485双向转换器连接电脑DB-9的串口,然后使用串口调试精灵测试,PLC与电脑之间可以互相通信(互传数据),证明RS232-RS485双向转换器是么有问题的。然后我重新做了插头,使用RS232-RS485双向转换器连接测量仪和PLC,也可以互传数据了。现在就是传回来的数据有点问题。需要处理。我再研究下。谢谢各位大神的指导。
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
9楼  发表于: 2014-01-15 09:23
图片:
图片:
图片:
图片:
如上图所示,整个程序,我就是选择COM2,RS485通信,格式是8,E,1.
需要PLC每次发送固定的数据M0,0     加上起始符,第一结束符,第二结束符就是:3A 4D 30 2C 30 0D 0A(电脑接收)
需要电脑每次发送的固定数据是M0,+0023.796,+0023.832(PLC接收)
这程序使用串口调试精灵来通信,结果每次发送和接收的数据都不一样。为什么
[ 此帖被chinazhu6666在2014-01-15 09:31重新编辑 ]
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
10楼  发表于: 2014-01-15 14:51
图片:
引用
引用第17楼sjm213于2014-01-15 13:07发表的  :
1,每次接收到的数据有无规律可循?
2,建议先把RS232-RS485换成有源的再试一下。

使用串口的自动发送功能,每次接收到的数据一点规律都没。大神推荐一款有源RS232-RS485转换器吧。我在网上看的都不能用在PLC通信上啊。
图片所示就是有源RS232-RS485双向转换器,外接电源9-30V。卖家说有使用到PLC通信上的先例。大神帮看看这个可以不
[ 此帖被chinazhu6666在2014-01-15 15:33重新编辑 ]
QQ76214024
chinazhu6666
严谨求实
级别: 网络英雄
精华主题: 0
发帖数量: 362 个
工控威望: 6119 点
下载积分: 2909 分
在线时间: 132(小时)
注册时间: 2011-12-16
最后登录: 2018-05-07
查看chinazhu6666的 主题 / 回贴
11楼  发表于: 2014-01-20 17:09
特别鸣谢论坛版主:sjm213先生,特别感谢楼上帮助我的各位大神,我的这个项目通信问题已经搞定了。买了楼上这款转换器后,通信灯指示起到了很大作用。其实,那个测量仪有一个特殊要求,就是PLC给测量仪发送指令的时候必须加前后缀STX和ETX,虽然我开始做的时候也加了,但是没有写置位M1126这句程序,而M1126的意思就是COM2(RS485)STX/ETX使用者/系统定义选择,我翻了资料,要置位M1126,前后缀才能跟同指令一同发送给测量仪的 而我使用电脑与测量仪之间通信,PLC与电脑之间通信,可能串口调试程序已经在内部做好了这部工作吧。
QQ76214024