




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
东莞图冠智能科技有限公司PC与三菱PLC之间的RS232通讯协议2、位元件和字元件状态写操作; 操作对象元件:PLC内部的XYMSTCU元件 命令通用格式:STXCMD1ADDLENDATAEXTCHK 意义:起始符读命令元件起始位个数写入的数据停止符校验码 数字代码格式: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:m_address*2+0100H; Y:m_address+00A0H; X:m_address+0080H;(只能读不能写,输入寄存器必须由外部信号驱动) m_address元件是指最低位开始后的第N个元件的位置。 数据通讯举例: 例1:读D0的值 D0的内部地址为1000H=31H30H30H30H LEN表示我们需要读字节的个数,0-7为一个字节,D0占两个字节,所以LEN=30H32H. 计算CHK校验码=CMD0+ADD+LEN+EXT =30H+31H+30H+31H+30H+30H+32H+03H=157H 所以校验码为35H37H. 得到完整的数字命令格式为:02H30H31H30H30H30H30H32H03H35H37H 将这段数字代码发送给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; 得到完成的数字代码为:02H30H30H30H41H30H30H31H03H36H35H; 返回代码: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的值。 思路: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+30H+30H+03H=218H 则校验码为:31H38H 完整的数字代码为:02H31H31H30H30H30H30H32H31H30H30H30H03H31H38H 返回值为06表示写入成功,PLC直接读取D0里面的数据即可。 完成PLC读取IPC数据。 当然这只是即时的读取,如果需要可控性的话,需要增加自定义读取和发送标志位,多加个数据用来表示控制字节用。IO通讯举例: 例2:IPC置位PLC内部位元件Y1 思路:1、确定Y1地址(读操作已说明); 2、就于写入的原理,需要先读取00A0的值; 3、将读取的值与0010进行&运算,确定Y1是否为0; 4、为0,则将读取值与0010进行或运算,再将得到的值转为数字代码形式发送给PLC;为1,则表示内部Y1已经为1,不需要重复置位; 5、写入成功后返回06; 编写VC程序时需要用到以上思路; 这里我们假设我们只是写入Y1=1来操作: Y1的PLC内部地址为:00A0H;表示Y7-Y0的地址,Y1只是其中一个位; LEN

王子****青蛙
实名认证
内容提供者


最近下载