2.14.4 設定串列傳輸格式
PLC 可利用 NC_COMMAND_SERIALLINK 來設定串列傳輸格式,其中的 plc.ncCommand.flag 需設為 NC_COMMAND_SERIALLINK;plc.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