目的: 測試ESP32硬體RS232與PLC通訊
系統架構
接線
開發板設定
程式
//NodeMCU_32S UART2 and DVP-32EH COM1
#include <HardwareSerial.h>
#define RXD2 16
#define TXD2 17
char CR = 0x0D;
char LF = 0x0A;
String cmd = String();
byte inByte[50] ; // 用來儲存收進來的 data byte
int i=0;
boolean once = false;
void setup() {
Serial.begin(115200);
// Serial2.begin(baud-rate, protocol, RX pin, TX pin);
Serial2.begin(9600, SERIAL_7E1, RXD2, TXD2); // 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(" ");
Serial.println("ESP32 --> 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(" ");
}
Serial2.print(cmd); //ESP32 2 PLC
delay(100);
Serial.println(" ");
Serial.println(" ");
// PLC Response
i=0;
while (Serial2.available()) { //PLC 2 ESP32
inByte[i++] = Serial2.read();
}
Serial.println("DVP PLC --> ESP32");
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(" ");
}
Serial.println(" ");
i=0;
once = true;
}//end once
}
沒有留言:
張貼留言