Tu sei evidentemente un programmatore che arriva dal linguaggio “C”, e quindi dovresti inviare una lamentela all’ente IEC che ha normalizzato il linguaggio. Siccome il programmatore di PLC secondo la loro visione non è molto esperto hanno cercato il più possibile di evitare le confusioni.
Quindi a differenza del “C” dove esiste una differenziazione tra carattere racchiuso tra singoli apici ‘a’ e stringa racchiusa tra doppi apici “Stringa” nella IEC-61131 esistono solo le stringhe che sono indicate racchiuse tra singoli apici ‘Stringa’.
Quindi non puoi comparare una locazione di memoria con una stringa, ecco il perchè dell’errore sullo statement IF:
error G0043: EQ => CODE GENERATOR INTERNAL ERROR
La stessa cosa dicasi nella assegnazione del valore, il compilatore non dà errore ma segnala l’anomalia con una warning:
warning G1799: buff[1] => Converting a string into a number