[西门子] 三菱PLC通讯问题,请高手们帮帮忙!谢谢!

[复制链接]
查看1191 | 回复1 | 2010-11-20 20:10:00 | 显示全部楼层 |阅读模式
我现在用的PLC是FX1S的(这个是目前的一个小项目用的FX1S,后面有个项目估计要用FX2N或者3U的,所以得先弄清这个通讯的问题),然后用了485BD通讯板,和公司的控制器(下面简称EVC)进行通讯,采用的是485半双工方式进行通讯,也就是2线制的,用的是无协议通讯方式,就是用RS指令,当我发送命令数据给EVC并要求EVC返回数据给PLC时,PLC在接收数据的时候,我分配的那些接收数据寄存器里面的数据起初是PLC发送的数据,然后接收到EVC返回的数据,这样数据寄存器里面的内容就被覆盖,出现闪的情况,每次通讯时,都会出现这样的情况,现在是想如何处理接收端过滤掉接收到了是PLC发送的那些数据,问三菱技术支持,说是回波通讯的问题,不知道通过软件编程能否解决这样的问题,请高手们帮帮忙,不胜感激!例如我发送的指令是 RS D0 K29 D30 K29,为什么是发送和接收的数据寄存器个数都是29(其实我真正发送命令的数据只有8个,但第八个后面的数据都是0),是由于我发现如果是不一样的话,按照书上说的RS指令格式来,我接收到的数据是错误的,是循环错位的,不知道为什么,是不是由于2线制的原因?但如果分配的个数一样多,那我接收的数据就是都是正确的,当M8122前面的脉冲开光接通发送数据后,数据寄存器D30-D58里面的数据一开始是PLC之前发送的数据,之后立马闪烁为EVC返回的数据,当到下一个脉冲发送数据时,又出现这样的现象,不知道到如何去解决,希望有经验的大侠们帮帮小弟!在此再感谢阅读并回复帖子的朋友们!
sequel2010 | 2010-11-20 20:10:00 | 显示全部楼层
我的通讯M8161为ON,即8位的,例如我发送的数据是01 03 02 00 00 0C CRC_L CRC_H (01是设备地址,03是读指令,0200是设备数据寄存器地址,00 0C是读取12个设备寄存器数据的个数),设备EVC会返回的数据格式是:01 03 18 ......... CRC_L CRC_H (...中是24个数据),总共也就是29个,RS指令写成RS D0 K29 D30 K29,(D8-D28均为0,不影响通讯,因为EVC在接收到数据的CRC校验的数据后,后面的数据是不做响应的)为什么发送的数据寄存器我也要分配成29个,是由于如果写成是K8,那么我通讯的时候,接收的数据是错误的,发现循环错位的现象。写成RS D0 K29 D30 K29时,不会出现那样的情况,接收到的数据也是正确的,但是发现一个问题是,每次脉冲信号发送数据后,D30-D58起初接收的数据是PLC发送的,也就是D30=01,D31=03,D32=02,D33=00,D34=00,D35=00,D36=0C依次类推,D38-D58为0,之后D30到D58的数据寄存器立马闪烁显示为EVC返回的数据,也就是此时D30=01,D31=03,D32=18,依次类推,D33-D56为24个数据,D57,D58为CRC校验的低8位,高8位。所以每次脉冲发送数据通讯时D30-D58数据寄存器内的内容都会跳动显示,而我只要EVC返回的数据,不知道如何去解决这样的问题?请大家帮帮忙!
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则