Hier mal der komplette Code. Ich bin kein Programmierer. Bin da neu in der Sache
// +++++++++++++ INPUTS FROM DISPLAY TO MEGA ++++++++++++
// SERIELLE BUTTON/TEXT KOMMUNIKATION INFO
// Interlock EXT1 = "BT98ON" "BT98OFF"
// Interlock EXT2 = "BT99ON" "BT99OFF"
// Interlock RESET = "ERESET"
// Interlock 1-4 Select = "IL14ON" "IL14OFF"
// Interlock 5-8 Select = "IL58ON" "IL58OFF"
// Interlock 9-12 Select = "IL912ON" "IL912OFF"
// Interlock 12-16 Select = "IL1216ON" "IL1216OFF"
// Interlock 17-20 Select = "IL1720ON" "IL1720OFF"
// Interlock 21-24 Select = "IL2124ON" "IL2124OFF"
// Interlock ALL ON/OFF "ALLON" "ALLOFF"
// SYSTEM RESTART = "SReset"
// LED SYSTEMTEST = "TLEDON" "TLEDOFF"
// +++++++++++++ OUTPUT FROM ARDUINO TO MEGA ++++++++++++
// PAGE 2 t1.txt HAUPTSTATUS ANZEIGE
// PAGE 2 t4.txt KEYSWITCH ON/OFF
//#####################################################################################################
//SETUP CONTROLLER
//#####################################################################################################
// GENERAL INPUTS
int ESTOPIN= 4; // EINGANG ESTOP IN FÜR MELDUNG
int KEYSWITCH= 5; // EINGANG KEYSWITCH IN FÜR MELDUNG
int RESETEXT= 6; // EINGANG RESET TASTE INTERN
// GENERAL OUTPUTS
int OUT1= 32; // AUSGANG RELAIS 1 SEKTION 1-4
int OUT2= 33; // AUSGANG RELAIS 2 SEKTION 5-8
int OUT3= 34; // AUSGANG RELAIS 3 SEKTION 9-12
int OUT4= 35; // AUSGANG RELAIS 4 SEKTION 12-16
int OUT5= 36; // AUSGANG RELAIS 5 SEKTION 17-20
int OUT6= 37; // AUSGANG RELAIS 6 SEKTION 21-24
int OUT7= 38; // AUSGANG RELAIS INTERLOCK 1 BRÜCKEN
int OUT8= 39; // AUSGANG RELAIS INTERLOCK 2 BRÜCKEN
int ANZEIGE="";
void setup() {
// STARTE COMMUNICATION
Serial.begin(9600);
Serial.println("SERIAL 1 BEGINN");
// DEFINIERTE E/As
pinMode(ESTOPIN, INPUT_PULLUP);
pinMode(KEYSWITCH, INPUT_PULLUP);
pinMode(RESETEXT, INPUT_PULLUP);
pinMode(OUT1, OUTPUT);
pinMode(OUT2, OUTPUT);
pinMode(OUT3, OUTPUT);
pinMode(OUT4, OUTPUT);
pinMode(OUT5, OUTPUT);
pinMode(OUT6, OUTPUT);
pinMode(OUT7, OUTPUT);
pinMode(OUT8, OUTPUT);
}
//#####################################################################################################
//AUFRUF PROGRAMM
//#####################################################################################################
void loop() {
delay(500);
// Falls es was zu lesen gibt, lesen wir es. Wenn nicht, dann eben nicht
if(Serial.available())
{ //++++++++++++++++++++++++++++++++++++++++++
String data_from_display=""; // LADE SCHNITSTELLE UND SCHREIBE STRING
//++++++++++++++++++++++++++++++++++++++++++
while(Serial.available())
{
data_from_display += char(Serial.read());
}
Serial.println(data_from_display);
sendData(data_from_display);
}
// Egal, ob etwas über die Serielle gelesen wurde.
// Wir lesen jetzt die EINGÄNGE
ESTOPIN = digitalRead(4); //+++++++++++++++++++++++++++++++++++++++++++
KEYSWITCH = digitalRead(5); // EINLESEN VON EINGÄNGEN
RESETEXT= digitalRead(6); //+++++++++++++++++++++++++++++++++++++++++++
delay(30); //+++++++++++++++++++++++++++++++++++++++++++
if(KEYSWITCH == HIGH){
Serial.print("t4.pco=0");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff); // FUNKTION MELDUNG KEYSWITCH OFF/ON
Serial.print("t4.pco=63488"); //+++++++++++++++++++++++++++++++++++++++++++
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t4.txt=\"OFF !\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(100);
}
if(KEYSWITCH == LOW){
Serial.print("t4.pco=0");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t4.pco=2016");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t4.txt=\"ON !\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p32,0");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(100);
}
//++++++++++++++++++++++++++++++++++++++++++++++
if(ESTOPIN == HIGH){ // FUNKTION MELDUNG NOTAUS
//++++++++++++++++++++++++++++++++++++++++++++++
delay(30);
digitalWrite(OUT5, LOW);
delay(30);
Serial.print("b1.bco=65504");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("b1.pco=63488"); // SENDE TEXT AN DISPLAY EMERGENCY STOP // TASTER NEGATION
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.pco=63488");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.txt=\"EMERGENCY STOP !\""); // SENDE TEXT AN DISPLAY EMERGENCY STOP // TASTER NEGATION
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p30,0"); // BILD STOP
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p31,1"); // BILD STOP
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(200);
}
if((ESTOPIN == HIGH) && (KEYSWITCH == LOW)) // Klammern retten Nerven
{
delay(30);
digitalWrite(OUT5, LOW);
delay(30);
Serial.print("b1.bco=65504");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("b1.pco=63488");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.pco=63488");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.txt=\"EMERGENCY STOP !\""); // SENDE TEXT AN DISPLAY EMERGENCY STOP // TASTER NEGATION
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p30,0"); // BILD STOP
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p31,1"); // BILD STOP
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(200);
}
if(ESTOPIN == LOW){
delay(30);
Serial.print("t1.txt=\"\""); // LEERE TEXT WENN KEIN NOTAUS // TASTER NEGATION
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("b1.bco=20");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("b1.pco=65535");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p31,0"); // BILD STOP 0
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p30,0"); // BILD STOP 0
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(200);
} //++++++++++++++++++++++++++++++++++++++++++++++
if(ESTOPIN == LOW && KEYSWITCH == HIGH){
delay(500); // FUNKTION MELDUNG SYSTEM STARTBEREIT
Serial.print("t1.pco=2016"); //++++++++++++++++++++++++++++++++++++++++++++++
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.txt=\"SYSTEM READY !\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p32,1");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(500);
Serial.print("t1.pco=2016"); //++++++++++++++++++++++++++++++++++++++++++++++
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.txt=\"WAIT FOR KEYSWITCH !\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p32,0");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(500);
} //+++++++++++++++++++++++++++++++++++++++++++++
if(ESTOPIN == LOW && KEYSWITCH == LOW){
delay(30); // FUNKTION MELDUNG LASER EMISSION OFF/ON
Serial.print("t1.pco=65504"); //++++++++++++++++++++++++++++++++++++++++++++
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.txt=\"LASER EMISSION ON !\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("vis p30,1");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(300);
}
else
Serial.println("KEINE DATEN...");
} // Ende von loop
//+++++++++++++++++++++++++++++++++++++++++++++
void sendData(String data_from_display){ //EMFANGENE DATEN VON DISPLAY STRING
//+++++++++++++++++++++++++++++++++++++++++++++
delay(30);
if(data_from_display =="IL14ON"){ // SEKTION ANWAHL BUTTON INTERLOCK 1-4 ON
delay(30);
digitalWrite(OUT1, HIGH);
delay(30);
}
if (data_from_display =="IL14OFF"){ // SEKTION ANWAHL BUTTON INTERLOCK 1-4 OFF
delay(30);
digitalWrite(OUT1, LOW);
delay(30);
}
if (data_from_display =="IL58ON"){ // SEKTION ANWAHL BUTTON INTERLOCK 5-8 ON
delay(30);
digitalWrite(OUT2, HIGH);
delay(30);
}
if (data_from_display =="IL58OFF"){ // SEKTION ANWAHL BUTTON INTERLOCK 5-8 OFF
delay(30);
digitalWrite(OUT2, LOW);
delay(30);
}
if (data_from_display =="IL912ON"){ // SEKTION ANWAHL BUTTON INTERLOCK 9-12 ON
delay(30);
digitalWrite(OUT3, HIGH);
delay(30);
}
if (data_from_display =="IL912OFF"){ // SEKTION ANWAHL BUTTON INTERLOCK 9-12 OFF
delay(30);
digitalWrite(OUT3, LOW);
delay(30);
}
if (data_from_display =="IL1316ON"){ // SEKTION ANWAHL BUTTON INTERLOCK 13-16 ON
delay(30);
digitalWrite(OUT4, HIGH);
delay(30);
}
if (data_from_display =="IL1316OFF"){ // SEKTION ANWAHL BUTTON INTERLOCK 13-16 OFF
delay(30);
digitalWrite(OUT4, HIGH);
delay(30);
}
if (data_from_display =="IL1720ON"){ // SEKTION ANWAHL BUTTON INTERLOCK 17-20 ON
delay(30);
digitalWrite(OUT5, HIGH);
delay(30);
}
if (data_from_display =="IL1720ON"){ // SEKTION ANWAHL BUTTON INTERLOCK 17-20 OFF
delay(30);
digitalWrite(OUT5, HIGH);
delay(30);
}
if (data_from_display =="IL2124ON"){ // SEKTION ANWAHL BUTTON INTERLOCK 21-24 ON
delay(30);
digitalWrite(OUT6, HIGH);
delay(30);
}
if (data_from_display =="IL2124OFF"){ // SEKTION ANWAHL BUTTON INTERLOCK 21-24 OFF
delay(30);
digitalWrite(OUT6, HIGH);
delay(30);
}
if (data_from_display =="ALLON"){ // SEKTION ANWAHL INTERLOCK ALLE ON
delay(30);
digitalWrite(OUT1, HIGH);
digitalWrite(OUT2, HIGH);
digitalWrite(OUT3, HIGH);
digitalWrite(OUT4, HIGH);
digitalWrite(OUT5, HIGH);
digitalWrite(OUT6, HIGH);
delay(30);
}
if (data_from_display =="ALLOFF"){ // SEKTION ANWAHL INTERLOCK ALLE OFF
delay(30);
digitalWrite(OUT1, LOW);
digitalWrite(OUT2, LOW);
digitalWrite(OUT3, LOW);
digitalWrite(OUT4, LOW);
digitalWrite(OUT5, HIGH);
digitalWrite(OUT6, HIGH);
delay(30);
}
if (data_from_display =="BT98ON"){ // Interlock 1 Brücke
delay(30);
digitalWrite(OUT7, LOW);
delay(30);
}
if (data_from_display =="BT98OFF"){ // Interlock 1 Brücke
delay(30);
digitalWrite(OUT7, HIGH);
delay(30);
}
if (data_from_display =="BT99ON"){ // Interlock 2 Brücke
delay(30);
digitalWrite(OUT8, LOW);
delay(30);
}
if (data_from_display =="BT99OFF"){ // Interlock 2 Brücke
delay(30);
digitalWrite(OUT8, HIGH);
delay(30);
}
delay(30);
}