您当前的位置:五五电子网电子知识电工技术电力配电知识计算机与PL的通讯格式和实现 正文
计算机与PL的通讯格式和实现

计算机与PL的通讯格式和实现

点击数:7142 次   录入时间:03-04 11:52:58   整理:http://www.55dianzi.com   电力配电知识
   datasum_check+=Write_ASC\[I\];}
   Serial.SendData(&ETX_end,1);//发送“结束”标志代码
   datasum_check+=ETX_end;
   Change_to_ASCII(senddatasum_CHECK,datasum_check);//将“和”转化成ASCII码
   Serial.SendData(&senddatasum_CHECK,2);
  Sleep(1000); Serial.ReadData(&read_finishBUFFER,1);
   if (read_finishBUFFER==ACK_reply)
  {AfxMessageBox(“数据写入 OK”)return TRUE;}
  else {AfxMessageBox(“数据写入失败”)return FALSE。}
  (3)位元件强制ON操作
  操作对象:X、Y、M、S、T、C元件;
  命令格式:

说明:①为强制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的运行提供一种良好的方法。

上一页  [1] [2] 


本文关键字:计算机  电力配电知识电工技术 - 电力配电知识