发表于:2007-11-28 14:53:00
楼主
三、编程口命令操作
(1)位元件或字元件状态读操作
操作对象元件:PLC内部的X、Y、M、S、T、C、D元件;命令格式:
说明:①为读命令起始标志STX,代码为OX02;
②为位元件或字元件状态读命令CMDO,命令代码为OX30;
③为读位元件或字元件的4位起始地址,高位先发,低位后发,且是以ASCII码的形式发送;
④为一次读取位元件或字元件的个数,最多一次可读取OXff个字节的元件,以ASCII码的形式发送;
⑤为停止位标志ETX,代码为OX03;
⑥为2位和校验,和累计为②、③、④项代码,取其和最低两位转化成ASCII码,高位先发,低位后发。
在发送完上述命令格式代码后,就可直接读取PLC响应的信息。响应信息格式如下:
VC++语言实现:
BOOL CNTJDlg::ReadFromPLC(char *Read_char char
*Read_address, int Read_bytes)
{
char senddatasum_CHECK\[2\];char readdatasum_CHECK\[2\]; char total_DATABYTES\[2\];
char readdatasum_check\[2\];int readdata_sum;
int datasum_check=0; int i;
Serial.SendData(&STX_start,1);/向PLC发送“开始”标志代码
Serial.SendData(&CMDO_read,1);//发送“读”命令代码datasum_check+=CMDO_read;