From 24723b0e7467e31f1689acc7581d167e5c3f07eb Mon Sep 17 00:00:00 2001 From: Changwoo Park Date: Thu, 22 Jun 2023 18:46:16 +0900 Subject: [PATCH] =?UTF-8?q?[AO][MC9]=20-=20AO=20=20=20=E3=84=B4=20LV?= =?UTF-8?q?=EC=97=90=EC=84=9C=20Range=20=EC=A0=9C=EC=96=B4=20(=ED=99=9C?= =?UTF-8?q?=EC=84=B1=ED=99=94)=20=20=20=E3=84=B4=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20:=20Range=20=EB=A0=88=EC=A7=80=EC=8A=A4?= =?UTF-8?q?=ED=84=B0=20=EC=A3=BC=EC=86=8C=EA=B0=80=200x00=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=9E=98=EB=AA=BB=20=EB=90=98=EC=96=B4=20=EC=9E=88?= =?UTF-8?q?=EB=8A=94=20=EA=B2=83=20=EC=88=98=EC=A0=95=20->0x01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MC9 ㄴ LV에서 Addr 제어 (활성화) ㄴ RS485_1에서 2개 사용. RS485_2 에서 추후 2개 사용하도록 확장 필요 ㄴ 단, SV Write 부분은 추가 업데이트 필요 - 기타 제어 확인 - 디버깅을 위해 FC_InferfaceBoard.h 추가 (함수 전처리 안되어있으면 해당 부분으로 오류 검출됨) ㄴ 파일명 오타 확인. 추후 수정예정. --- FC_InferfaceBoard/Analog_Out.ino | 81 ++++++++++-------------- FC_InferfaceBoard/DFRobot_GP8403.h | 2 +- FC_InferfaceBoard/FC_InferfaceBoard.h | 57 +++++++++++++++++ FC_InferfaceBoard/FC_InferfaceBoard.ino | 29 +++++++-- FC_InferfaceBoard/GP8403.ino | 2 - FC_InferfaceBoard/MC9.ino | 65 ++++++++++++++----- FC_InferfaceBoard/Processes.ino | 29 +++++---- FC_InferfaceBoard/RS485.ino | 19 ++++-- FC_InferfaceBoard/periodics.ino | 25 ++++++-- Labview/IF_CMD.vi | Bin 23274 -> 24166 bytes Labview/IF_Loop.vi | Bin 11007 -> 10991 bytes 11 files changed, 218 insertions(+), 91 deletions(-) create mode 100644 FC_InferfaceBoard/FC_InferfaceBoard.h diff --git a/FC_InferfaceBoard/Analog_Out.ino b/FC_InferfaceBoard/Analog_Out.ino index 30a4895..15d5c14 100644 --- a/FC_InferfaceBoard/Analog_Out.ino +++ b/FC_InferfaceBoard/Analog_Out.ino @@ -1,65 +1,52 @@ void AO_setup(int i, int Rng) { - DFRobot_GP8403 AO; + DFRobot_GP8403* AO; bool needBegin = true; bool needRng = true; - int twinRng = 0; - if(i%2){ // Odd - twinRng = RngAO[i-1]; - }else{ // Even - twinRng = RngAO[i+1]; - } - - needBegin = (twinRng == 0); - - if(Rng > twinRng){ - needRng = true; - }else{ - needRng = false; - } + needBegin = (RngAO[i] == 0); if(i <= 1){ - AO = AO_0; + AO = &AO_0; }else if(i <= 3){ - AO = AO_2; + AO = &AO_2; }else if(i <= 5){ - AO = AO_4; + AO = &AO_4; }else if(i <= 7){ - AO = AO_6; + AO = &AO_6; }else if(i <= 9){ - AO = AO_8; + AO = &AO_8; }else if(i <= 11){ - AO = AO_10; + AO = &AO_10; }else if(i <= 13){ - AO = AO_12; + AO = &AO_12; }else if(i <= 15){ - AO = AO_14; + AO = &AO_14; } if(needBegin){ // If not begin yet - Serial.println("AO init begin"); - while(AO.begin()!=0); - Serial.println("AO init succeed"); - AO.setDACOutVoltage(0, 0); - AO.setDACOutVoltage(0, 1); - delay(20); - AO.store(); + Serial.println("AO_"+ String(i) + ": initialization Begin"); + while(AO->begin()!=0); + AO->setDACOutVoltage(0, 2); + delay(5); + AO->store(); } - if(needRng){ - if(Rng == 10){ - AO.setDACOutRange(AO.eOutputRange10V); - }else{ - AO.setDACOutRange(AO.eOutputRange5V); - } + + if(Rng == 10){ + AO->setDACOutRange(AO->eOutputRange10V); + Serial.println("AO_"+ String(i) + ": Initialized, Set Range 10V"); + }else{ + AO->setDACOutRange(AO->eOutputRange5V); + Serial.println("AO_"+ String(i) + ": Initialized, Set Range 5V"); } + RngAO[i] = Rng; - Serial.println("AO FIN"); + RngAO[i+1] = Rng; } void AO_Write(int i, int volt) { - DFRobot_GP8403 AO; + DFRobot_GP8403* AO; int ch; if(i%2){ // Odd @@ -69,22 +56,22 @@ void AO_Write(int i, int volt) { } if(i <= 1){ - AO = AO_0; + AO = &AO_0; }else if(i <= 3){ - AO = AO_2; + AO = &AO_2; }else if(i <= 5){ - AO = AO_4; + AO = &AO_4; }else if(i <= 7){ - AO = AO_6; + AO = &AO_6; }else if(i <= 9){ - AO = AO_8; + AO = &AO_8; }else if(i <= 11){ - AO = AO_10; + AO = &AO_10; }else if(i <= 13){ - AO = AO_12; + AO = &AO_12; }else if(i <= 15){ - AO = AO_14; + AO = &AO_14; } - AO.setDACOutVoltage(volt, ch); + AO->setDACOutVoltage(volt, ch); } \ No newline at end of file diff --git a/FC_InferfaceBoard/DFRobot_GP8403.h b/FC_InferfaceBoard/DFRobot_GP8403.h index 2fedc87..e9483aa 100644 --- a/FC_InferfaceBoard/DFRobot_GP8403.h +++ b/FC_InferfaceBoard/DFRobot_GP8403.h @@ -31,7 +31,7 @@ #define DBG(...) #endif #define GP8302_CONFIG_CURRENT_REG 0x02 -#define OUTPUT_RANGE 0X00 +#define OUTPUT_RANGE 0X01 class DFRobot_GP8403 { public: diff --git a/FC_InferfaceBoard/FC_InferfaceBoard.h b/FC_InferfaceBoard/FC_InferfaceBoard.h new file mode 100644 index 0000000..4c825a5 --- /dev/null +++ b/FC_InferfaceBoard/FC_InferfaceBoard.h @@ -0,0 +1,57 @@ +//Processes +String Prcss_ALL_Read(); +String Prcss_DO_Write(unsigned int data[], int dataSize); +String Prcss_DI_Read(); +String Prcss_AI_Read(); +String Prcss_AO_Write(unsigned int data[], int dataSize); +String Prcss_PV_Read(); +String Prcss_SV_Read(); +String Prcss_SV_Write(unsigned int data[], int dataSize); +String Prcss_AT_Write(bool onOff); +String Prcss_RngAO(unsigned int data[], int dataSize); +String Prcss_ChMC9(unsigned int data[], int dataSize); + +//Ethernet +void Ethernet_setup(); +void webReponse(); +String demuxCMD(String command, String* rightPart); +int demuxNum(String rightPart, unsigned int data[]); + +//RS485 +void RS485_setup(); +void send_485(); +int recieve_485(); +void recieve_485_0(); + +//GPIO +void GPIO_setup(); +void read_analog(); +void read_digital(); + +//MC9 +void setupMC9_1(int i, int data); +String msg_MC9_PV(int addr); +String msg_MC9_SV(int addr); +int saveMC9(String message); +int timeoutMC9(); +int parseMC9(const String& message, int& addr, String& mode, int data[8], int& crc); +String sumMC9(String input); + +//Utils +int write_buff_c(char* buff, char c); +int write_buff(char* buff, String str); +int write_buff_first(char* buff, String str); +String read_buff(char* buff); + +// Periodics +void Periodic_run(); +void timer_10ms(); + +// Analog_Out +void AO_setup(int i, int Rng); +void AO_Write(int i, int volt); + + + +void timer_10ms(); +int write_buff_c(char* buff, char c); \ No newline at end of file diff --git a/FC_InferfaceBoard/FC_InferfaceBoard.ino b/FC_InferfaceBoard/FC_InferfaceBoard.ino index 12a8e54..eda1643 100644 --- a/FC_InferfaceBoard/FC_InferfaceBoard.ino +++ b/FC_InferfaceBoard/FC_InferfaceBoard.ino @@ -5,6 +5,8 @@ #include "Wire.h" // I2C #include "DFRobot_GP8403.h" +#include "FC_InferfaceBoard.h" + #define CR "\r" #define FIN "\n" #define CRLF "\r\n" @@ -80,11 +82,27 @@ int Values_DI; int Size_AI = 16; int Values_AI[16]; -bool rcv_10_PV; +int RS485_1_Addr[2] = {0,0}; +bool RS485_1_Rcv_PV[2] = {false, false}; +bool RS485_1_Rcv_SV[2] = {false, false}; +int RS485_1_Rcv_size = 8; +int RS485_1_Values_PV[8*2]; +int RS485_1_Values_SV[8*2]; + +/* +int RS485_2_Addr[2]; +bool RS485_2_Rcv_PV[2]; +bool RS485_2_Rcv_SV[2]; +int RS485_2_Rcv_size = 8*2; +int RS485_2_Values_PV[8*2]; +int RS485_2_Values_SV[8*2]; +*/ + +bool rcv_10_PV = true; int Size_PV = 8; int Values_10_PV[8]; -bool rcv_10_SV; +bool rcv_10_SV = true; int Size_SV = 8; int Values_10_SV[8]; @@ -186,13 +204,16 @@ void loop() { }else if(cmd=="PV?"){ client.print(Prcss_PV_Read()); - }else if(cmd=="ATon!"){ + } + /* + else if(cmd=="ATon!"){ client.print(Prcss_AT_Write(true)); }else if(cmd=="AToff!"){ client.print(Prcss_AT_Write(false)); } + */ // Init else if(cmd=="State?"){ @@ -202,7 +223,7 @@ void loop() { }else if(cmd=="ChMC9!"){ dataSize = demuxNum(cmdData, data); - //client.print(Prcss_ChMC9(data, dataSize)); + client.print(Prcss_ChMC9(data, dataSize)); } diff --git a/FC_InferfaceBoard/GP8403.ino b/FC_InferfaceBoard/GP8403.ino index 171499f..1b5f616 100644 --- a/FC_InferfaceBoard/GP8403.ino +++ b/FC_InferfaceBoard/GP8403.ino @@ -1,6 +1,4 @@ - - DFRobot_GP8403::DFRobot_GP8403(TwoWire *pWire,uint8_t addr) { _pWire = pWire; diff --git a/FC_InferfaceBoard/MC9.ino b/FC_InferfaceBoard/MC9.ino index fceb7d4..5a1093d 100644 --- a/FC_InferfaceBoard/MC9.ino +++ b/FC_InferfaceBoard/MC9.ino @@ -1,28 +1,61 @@ const int MC9_CH[] = {1000, 1008, 1016, 1024, 1100, 1108, 1116, 1124}; -#define MC9_10_PV "10DRS,08,0001CB" -#define MC9_10_SV "10DRS,08,0011CC" - // 10DWR,02,0302,0001,0501,0001 // Auto Tune. 0302(Ch Sel) 0001(Ch.1) 0501(AT) 0001(On, Off=0000) +void setupMC9_1(int i, int data){ + RS485_1_Addr[i] = data; +} + +String msg_MC9_PV(int addr){ + String message = ""; + + message += String(addr); + message += "DRS,08,0001"; + message += sumMC9(message); + message = "" + message; + + return message; +} + +String msg_MC9_SV(int addr){ + String message = ""; + + message += String(addr); + message += "DRS,08,0011"; + message += sumMC9(message); + message = "" + message; + + return message; +} + int saveMC9(String message){ - int addr; + int addr, idx; String mode; int data[8]; int crc; if (parseMC9(message, addr, mode, data, crc)) { - if(latest_sent_msg == MC9_10_PV){ - rcv_10_PV = true; - for(int i = 0 ; i < Size_PV ; i++){ - Values_10_PV[i] = data[i]; + for(int i=0 ; i < 2 ; i++){ // RS485_1 has two rooms for two MC9s + if(RS485_1_Addr[i] == addr){ + idx = i; + break; + }else{ + return -1; + } + } + + if(latest_sent_msg.indexOf("DRS,08,0001") != -1){ // if PV CMD + //rcv_10_PV = true; + for(int i = 0 ; i < RS485_1_Rcv_size ; i++){ + RS485_1_Values_PV[i + idx*8] = data[i]; } } - if(latest_sent_msg == MC9_10_SV){ - rcv_10_SV = true; - for(int i = 0 ; i < Size_SV ; i++){ - Values_10_SV[i] = data[i]; + //if(latest_sent_msg == msg_MC9_SV(10)){ + if(latest_sent_msg.indexOf("DRS,08,0011") != -1){ // if SV CMD + //rcv_10_SV = true; + for(int i = 0 ; i < RS485_1_Rcv_size ; i++){ + RS485_1_Values_SV[i + idx*8] = data[i]; } } return 1; @@ -37,17 +70,19 @@ int timeoutMC9(){ String mode; int data[8]; int crc; + + /* if(latest_sent_msg == MC9_10_PV){ - rcv_10_PV = false; + //rcv_10_PV = false; } if(latest_sent_msg == MC9_10_SV){ - rcv_10_SV = false; + //rcv_10_SV = false; }else { Serial.println("error 485 read"); return 0; } - + */ return 1; } diff --git a/FC_InferfaceBoard/Processes.ino b/FC_InferfaceBoard/Processes.ino index 58ea9d7..d799a03 100644 --- a/FC_InferfaceBoard/Processes.ino +++ b/FC_InferfaceBoard/Processes.ino @@ -20,9 +20,9 @@ String Prcss_ALL_Read(){ str += "PV10?:"; if(rcv_10_PV){ - for (int i = 0; i < Size_PV; i++) { + for (int i = 0; i < RS485_1_Rcv_size*2; i++) { char formattedNumber[5]; // 4자리 숫자 + 널 종료 문자 - sprintf(formattedNumber, "%04X", Values_10_PV[i]); // 4자리로 고정된 형식의 문자열 생성 + sprintf(formattedNumber, "%04X", RS485_1_Values_PV[i]); // 4자리로 고정된 형식의 문자열 생성 str += formattedNumber; // 형식화된 문자열 추가 str += ','; } @@ -33,9 +33,9 @@ String Prcss_ALL_Read(){ str += "SV10?:"; if(rcv_10_SV){ - for (int i = 0; i < Size_SV; i++) { + for (int i = 0; i < RS485_1_Rcv_size*2; i++) { char formattedNumber[5]; // 4자리 숫자 + 널 종료 문자 - sprintf(formattedNumber, "%04X", Values_10_SV[i]); // 4자리로 고정된 형식의 문자열 생성 + sprintf(formattedNumber, "%04X", RS485_1_Values_SV[i]); // 4자리로 고정된 형식의 문자열 생성 str += formattedNumber; // 형식화된 문자열 추가 str += ','; } @@ -92,15 +92,15 @@ String Prcss_AI_Read(){ String Prcss_AO_Write(unsigned int data[], int dataSize){ String str = "AO!:"; - int t = millis(); + //int t = millis(); int d = 2; for(int i=0 ; i data[i+1]) ? data[i] : data[i+1]; + }else{ + rng = data[i]; + } + AO_setup(i, rng); delay(d); + i++; // every 0 ch, not 1 ch. } str += RcvOK; return str + FIN; @@ -205,9 +212,9 @@ String Prcss_RngAO(unsigned int data[], int dataSize){ String Prcss_ChMC9(unsigned int data[], int dataSize){ String str = "ChMC9!:"; - int d = 2; + int d = 20; for(int i=0 ; i 25){ // Timeout = periodic(20ms) x 25 = 500 msec Serial.println("485 not responced... (Timeout)"); - if((latest_sent_msg == MC9_10_PV) ||(latest_sent_msg == MC9_10_SV)){ + //if((latest_sent_msg == MC9_10_PV) ||(latest_sent_msg == MC9_10_SV)){ + + /* + if((latest_sent_msg == msg_MC9_PV(10)) || (latest_sent_msg == msg_MC9_SV(10))){ timeoutMC9(); } - + */ latest_sent_msg = ""; Wait_485 = false; Wait_485_cnt = 0; numOf485--; - return 0; + return -1; } } // Receive pv data @@ -66,20 +69,22 @@ int recieve_485(){ String message = read_buff(Buff_485_Rd); if(message != ""){ numOf485--; - if((latest_sent_msg == MC9_10_PV) ||(latest_sent_msg == MC9_10_SV)){ + //if((latest_sent_msg == msg_MC9_PV(10)) || (latest_sent_msg == msg_MC9_SV(10))){ + if(latest_sent_msg.indexOf("DRS") != -1){ saveMC9(message); } else{ - Serial.print("485 rcv : "); + Serial.print("----- 485 rcv : "); Serial.println(message); } - Wait_485 = false; Wait_485_cnt = 0; } - return 1; + + return 0; } + /* For Test from PC */ void recieve_485_0(){ diff --git a/FC_InferfaceBoard/periodics.ino b/FC_InferfaceBoard/periodics.ino index 5613d25..2672126 100644 --- a/FC_InferfaceBoard/periodics.ino +++ b/FC_InferfaceBoard/periodics.ino @@ -26,19 +26,36 @@ void Periodic_run(){ T_500ms = false; } if(T_1000ms){ - write_buff(Buff_485_Wr, MC9_10_PV); // 10 DRS num 8 from ch1 PV + //write_buff(Buff_485_Wr, MC9_10_PV); // 10 DRS num 8 from ch1 PV + for(int i=0 ; i < 2 ; i++){ // RS485_1 has two rooms for two MC9s + if(RS485_1_Addr[i] > 0){ // If there is address + write_buff(Buff_485_Wr, msg_MC9_PV(RS485_1_Addr[i])); // write buff to send PV Req. + } + } + //write_buff(Buff_485_Wr, msg_MC9_PV(10)); + T_1000ms = false; } if(T_2000ms){ - Serial.print("----- remain 485 buff : "); // For - Serial.println(numOf485); // Debugging + if(numOf485 > 5){ + Serial.print("----- remain 485 buff : "); // For + Serial.println(numOf485); // Debugging + } T_2000ms = false; } if(T_5000ms){ - write_buff(Buff_485_Wr, MC9_10_SV); // 10 DRS num 8 from ch1 SV + //write_buff(Buff_485_Wr, MC9_10_SV); // 10 DRS num 8 from ch1 SV + for(int i=0 ; i < 2 ; i++){ // RS485_1 has two rooms for two MC9s + if(RS485_1_Addr[i] > 0){ // If there is address + write_buff(Buff_485_Wr, msg_MC9_SV(RS485_1_Addr[i])); // write buff to send SV Req. + } + } + //write_buff(Buff_485_Wr, msg_MC9_SV(10)); + T_5000ms = false; } } + void timer_10ms(){ msCnt += 10; diff --git a/Labview/IF_CMD.vi b/Labview/IF_CMD.vi index 2574a01abe62376bd23c5b0b045d5916f877fae0..11b1a76518d4aef600394d558d560e4670186607 100644 GIT binary patch delta 18548 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 diff --git a/Labview/IF_Loop.vi b/Labview/IF_Loop.vi index 8b4f3b6e9db6c0997f80a76ecd064a414983d86c..8c18b9abff266a1034b03211515f92fe4a7d50ed 100644 GIT binary patch delta 8120 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 F{x8}Q#h3s9 delta 8153 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