说明:①为强制ON命令起始标志STX,代码为OX02;
②为强制ON命令CMD7,命令代码为OX37;
③为强制ON位元件4位起始地址,高位先发,低位后发,是以ASCII码形式发送;
④为停止位标志ETX, 代码为OX03;
⑤为2位和校验,和累计为②、③、④项代码,取其和低两位转化成ASCII码,高位先发,低位后发。
VC++语言实现:
void NTJDlg::ForceOnOperation (char *ON_Address)
{ int I;
char│syn_Check\[2\];
char read_buffer;
int Sum=0;
Serial.SendData(&STX_start,1);//向PLC发送“开始”标志代码
Serial.SendData(&CMD7_ForceON,1);//发送“ON”命令代码
Sum+=CMD7 ForceON;
for (I=0; I<4; I++) {Serial.SendData(&ON_Address\[I\],1)//发送起始元件地址的ASCII码
Sum+=ON_Address\[I\];}
Serial.SendData(&ETX_end,1);//发送“结束”标志代码Sum+=ETX_end;
Change_to_ASCII(Sum_Check,Sum);//将“和”转化成ASCII码
Serial.SendData(&Sum_Check,2);
Sleep(1000);
Serial.ReadData(&read_buffer,1);
if(read_finishBUFFER==ACK_reply) AfxMessageBox(“ON 操作 OK”);
else AfxMessageBox(“ON 操作失败”)。
}
(4)位元件强制OFF操作
操作对象L同3(3);命令格式:
说明:①为强制OFF命令起始标志STX,代码为OX02;
②为强制OFF命令CMD8,命令代码为OX38H;
③为强制OFF位元件4位起始地址,高位先发,低位后发,以ASCII码形式发送;
④为停止位标志ETX,代码为OX03;
⑤为2位和校验,和累计为②、③、④项代码,取其和最低两位转化成ASCII码,高位先发,低位后发。
VC++语言实现:
void NTJDlg::ForceOffOperation (char *OFF_Address)
{
int I;
char Sum_Check\[2\];
char read_buffer;
int Sum=0;
Serial.SendData(&STX_start,1);//向PLC发送“开始”标志代码
Serial.SendData(&CMD8_ForceOFF,1);//发送“OFF”命令代码
Sum=CMD8_ForceOFF;
for (I=0;I<4;I++) {
Serial.SendData(&OFF_Address\[I\],1);//发送起始元件地址的ASCII码
Sum+=OFF_Address\[I\];}
Serial.SendData(&ETX_end,1);//发送“结束”标志代码
Sum+=ETX_end;
Change_to_ASCII(Sum_Check,Sum);//将“和”转化成ASCII码
Serial.SendData(&Sum_Check,2);
Skeeo(1000);
Serial.ReadData(&read_buffer,1);
if(read_fininhBUFFER==ACK_reply) AfxMessageBox(“OFF 操作 OK ”);
else AfxMessageBox(“OFF 操作失败”)。
}
注意:必须严格按照上述四种操作命令格式进行发送,在发送前,起始地址、数据、数据个数、校验和都必须按位转换成ASCII码。从PLC读到的数据亦是ASCII码形式,需要经过适当转换才能利用。另外,要注意强制命令地址与读写地址的顺序不是一样,且一次最多只能传送64个字节数据。
四、结论
利用上述四种操作命令,就可对PLC的RAM区数据进行管理操作。将PLC的工作状态纳入微型计算机管理之下。在此基础上,用户可以应用VC很方便地设计自己的PLC人机接口界面,为监控与管理PLC的运行提供一种良好的方法。
本文关键字:计算机 电力配电知识,电工技术 - 电力配电知识