欢迎来到天天文库
浏览记录
ID:51065039
大小:468.47 KB
页数:9页
时间:2020-03-18
《PC与三菱PLC之间的RS232通讯协议.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、东莞图冠智能科技有限公司陈安标交流QQ:458362670PC与三菱PLC之间的RS232通讯协议一、VC与PLC的串口通讯主要操作:1、对位元件和字元件状态读操作;操作对象元件:PLC内部的X、Y、M、S、T、C、D元件命令通用格式:STXCMD0ADDLENEXTCHK意义:起始符读命令元件起始位个数停止符校验码数字代码格式:0X020X30…………0X03……0x30是读操作指令;ADD是读位元件或字元件的4位起始地址,高位先发,低位后发,以ASCII码的格式发送;LEN是一次读取位元件或字元件的个数,最多可以读取0xff个字节的元件,也是以ASCII码的形式发送;CHK是
2、两位和校验,将CMD0,ADD,LEN,EXT三项进行和累计,将和累计的最低两位转化成ASCII,高位先发,低位后发。在发完上述命令格式代码后,就可以直接读取PLC响应返回的信息,响应信息格式:STXDATAEXTCHK意义:起始符接收的数据停止符校验码数字代码格式:0x02……0x03……DATA为我们需要读取的数据;需要注意的是:读取DATA数据时遵循低位先发,高位后发的原则,所以我们解析数据的时候需要注意高低位的转换。CHK则为DATA,EXT两项的和累计的最后两位转化为ASCII。2、位元件和字元件状态写操作;操作对象元件:PLC内部的XYMSTCU元件命令通用格式:ST
3、XCMD1ADDLENDATAEXTCHK意义:起始符读命令元件起始位个数写入的数据停止符校验码数字代码格式:0X020X31……0X03……0x031是写操作指令;DATA是待写入PLC缓冲区的数据,低位先发,高位后发,以ASCII码的形式发送;其他和读指令一样,此处不再重复;发送后返回值为06,表示写入成功;返回值为15,表示写入失败;二、IPC读取PLC内部数据时:首先将需要读取的PLC内部元件的地址找到,主要内部元件地址如下:D:m_address*2+1000H;T:m_address+00C0H;C:m_address*2+01C0H;S:m_address*3;M:
4、m_address*2+0100H;Y:m_address+00A0H;X:m_address+0080H;(只能读不能写,输入寄存器必须由外部信号驱动)m_address元件是指最低位开始后的第N个元件的位置。数据通讯举例:例1:读D0的值D0的内部地址为1000H=31H30H30H30HLEN表示我们需要读字节的个数,0-7为一个字节,D0占两个字节,所以LEN=30H32H.计算CHK校验码=CMD0+ADD+LEN+EXT=30H+31H+30H+31H+30H+30H+32H+03H=157H所以校验码为35H37H.得到完整的数字命令格式为:02H30H31H30H
5、30H30H30H32H03H35H37H将这段数字代码发送给PLC,返回代码:02H30H30H30H30H03H43H33H得到数据段DATA为30H,31H,30H,30H=0001B(低位先发,高位后发)=1D至此得到D0=1.完成IPC读取PLC内部数据的全部过程。IO通讯举例:例2:读取Y1的值Y1的内部地址是00A0=30H30H41H30H,表示的意思是Y7-Y0的地址,Y1只是其中的一个位。LEN因为00A0只有一个字节,所以可以去LEN=01D=30H31H;计算CHK校验码=36H35H;得到完成的数字代码为:02H30H30H30H41H30H30H31H
6、03H36H35H;返回代码:02H30H32H03H36H35H数据段为:30H32H=02D=0010B从Y7-Y0低往高排列可以知,Y1现在是状态值为1;如果这里取LEN=2D=30H32H发送代码:02H30H30H30H41H30H30H32H03H36H36H;返回代码:02H30H32H30H30H03H43H35H数据段为:30H32H30H30H=0002B(低位先发,高位后发)=2D从Y7-Y0低往高排列可以知,Y1现在是状态值为1;注意:全部过程中,PLC内部程序不需要做任何程序编写。三、PLC读取IPC数据时:数据通讯举例:例1:PLC读取IPC内部参数X
7、的值。思路:1、先将X的值转化成数字代码形式。2、再讲X的值发送写入PLC内部数据寄存器中;3、然后PLC直接读取这个数据寄存器的数据。设:X=2;数据写入PLC内部数据寄存器D0中则DATA=X=2=0010H=31H30H30H30H(低位先发,高位后发);ADD=31H30H30H30H;LEN=02D=30H32H.;(D为10进制;H为16进制)CHK=CMD1+ADD+LEN+DATA+EXT;=31H+31H+30H+30H+30H+30H+32H+31H+30H+
此文档下载收益归作者所有