Print

ASCII serielles Gateway mit einem ACE (2 serielle Schnittstellen)

Der ACE mit 2 seriellen Schnittstellen kann als serielles Gateway verwendet werden. Das kann jedoch zwischen 1 USB-Anschluss (Slave Modbus) und 1 seriellen ASCII-Anschluss funktionieren.

Wenn Sie z.B. eine Seriennachricht von einem Gerät, das Daten enthält, in ein anderes serielles Gerät mit den gleichen Daten konvertieren möchten.

Dies kann mit verschiedenen Drehzahl- und Paritätsparametern verwendet werden.

Für diesen Vorgang benötigen Sie eine ACE-SPS mit 2 RS232- oder RS485-Ports.

Sie müssen jede serielle Schnittstelle mit Ihren Geräten verbinden.

RX zu TXTX
zu RXGND
zu GND

Fügen Sie mit vBuilder das Programm GatewaySerialSub zu Ihrem ACE hinzu.

Dieses Programm ist für die ACE 7096x Version. Überprüfen Sie die Version im Abschnitt „Setup Hardware“. Ändern Sie es bei Bedarf.

Sie müssen auch die serielle Schnittstelle als „Custom type“  und alle anderen Parameter entsprechend Ihren Gerätekonfigurationen konfigurieren.

oder

Wie macht das Programm funktioniert?

Das Programm ist ein Unterprogramm namens „SerialA1toA2“.

Im Hauptprogramm rufen wir dieses Unterprogramm bei jedem Programmzyklus auf.

„NbMess.Processed“ (im Hauptprogramm) und „NbMessagReceived(im Unterprogramm) ist die Anzahl der verarbeiteten Nachrichten. Dies ist nur zur Information.

In unserem Fall ist die Länge der empfangenen Nachricht hier 14. Die Länge der gesendeten Nachricht ist 42. Sie müssen diese Werte für Ihre Anwendung entsprechend der Länge Ihrer Nachrichten anpassen.

Die Tags „ReceivedArray“ und „SendArray“ sind Arrays der Größe 14 bzw. 42.

Die Werte in den Array-Tags müssen dezimal sein. Siehe https://en.wikipedia.org/wiki/ASCII

Im Unterprogramm haben Sie einen anderen Zustand :

  • Zustand 0: Wir öffnen und hören die serielle Schnittstelle A1.
  • Zustand 1: Wir überprüfen, ob eine Nachricht eingetroffen ist. Wenn nach „MyTimer“ nichts ankommt, öffnen wir die serielle Schnittstelle wieder (Zustand 0).
  • Zustand 2: Die Nachricht vom A1-Port ist bereits in „ReceivedArray“. Wir erstellen die neue Nachricht und senden sie an die serielle Schnittstelle A2.

In diesem Beispiel unten enthält die neu gesendete Nachricht („SendArray“) feste Werte und Werte aus dem „ReceivedArray“.

  • Zustand 3: Sobald die Nachricht an die serielle Schnittstelle A2 gesendet wird, erhöhen wir die Anzahl der empfangenen Nachrichten und kehren zum Hören zurück (Zustand 0)

Ergebnis

In diesem Bild unten sehen wir den Wert „+1234567“ von „ReceivedArray“, der in „SendArray“ kopiert wurde