目的:測試Arduino 與PLC RS485通訊
系統架構
線路
程式
/*
Arduino and DVP PLC COM2 RS485
*/
char CR = 0x0D;
char LF = 0x0A;
String cmd = String();
byte inByte[50] ; // 用來儲存收進來的 data byte
int i=0;
boolean once = false;
void setup() // run once, when the sketch starts
{
Serial.begin(9600);
Serial1.begin(9600,SERIAL_7E1); // DVP PLC Modbus ASCII 9600,7,e,1
// force Y0 ON ":01050500FF00F6\r\n"
cmd= cmd + ":01050500FF00F6" + CR + LF;
}
void loop() {
if(!once){
Serial.println("Arduino --> DVP PLC");
Serial.print(cmd); //print string
for(int i=0; i<cmd.length(); i++) { //print ascii code
Serial.print(cmd.charAt(i),HEX);
Serial.print(" ");
}
Serial1.print(cmd); //Arduino 2 PLC
delay(100);
Serial.println(" ");
Serial.println(" ");
// PLC Response
i=0;
while (Serial1.available()) { //PLC 2 Arduino
inByte[i++] = Serial1.read();
}
Serial.println("DVP PLC --> Arduino");
for(int j=0; j< i;j++)
Serial.print((char) inByte[j]);
for(int j=0; j< i;j++){
Serial.print(inByte[j],HEX);
Serial.print(" ");
}
i=0;
once = true;
}//end once
}
沒有留言:
張貼留言