2.14.4 設定串列傳輸格式


PLC 可利用 NC_COMMAND_SERIALLINK 來設定串列傳輸格式,其中的 plc.ncCommand.flag 需設為 NC_COMMAND_SERIALLINKplc.ncCommand.attr 需設為 SERIALLINK_ATTR_SET_BAUDRATE


  • 程式範例:M69 為設定串列傳輸格式,設定完成時 NC 會把 finish 設為 1。

void plcRun(Status &sts, PlcBlock &plc)

{

 ...


 if( plc.mCode.flag ) {

   switch( plc.mCode.data ) {

     case 69:

       // finish setting

       if( plc.ncCommand.flag == NC_COMMAND_SERIALLINK && plc.ncCommand.finish ) {

         plc.ncCommand.flag = 0;

         plc.mCode.finish = 1;

       } else if( plc.ncCommand.flag == 0 ) { // ncCommand is zero NC allow set data

         if( plc.mhAttr&PLC_MH_ATTR_0 )// if M code has H code, H code is baudrate

           plc.ncCommand.data.x = plc.mhCode0;

         else

           plc.ncCommand.data.x = 9600;

         plc.ncCommand.data.y = 0;  // no parity

         plc.ncCommand.data.z = 1;  // 1 stop bits

         plc.ncCommand.data.a = 8;  // 8 data bits

         plc.ncCommand.flag = NC_COMMAND_SERIALLINK;

         plc.ncCommand.attr = SERIALLINK_ATTR_SET_BAUDRATE;

       }

       break;

   }

 }

 ...

}


  • 傳輸格式說明:

1. 變數:plc.ncCommand.data.x

   傳輸格式:傳輸速率(Baud rate)

   數值:1200,2400,4800,9600,19200,38400,76800,115200

2. 變數:plc.ncCommand.data.y

   傳輸格式:奇偶檢測(Parity check)

   數值:0(none),1(odd),2(even),3(mark),4(space)

3. 變數:plc.ncCommand.data.z

   傳輸格式:終止 bits(Stop bits)

   數值:1,2

4. 變數:plc.ncCommand.data.a

   傳輸格式:數據 bits(Data bits)

   數值:7,8