Omron
Omron-Steuerungen anbinden, CJ, CS und CP über die Speicheradresse per FINS (UDP, TCP oder Host Link auf einer seriellen Leitung) und NJ, NX und NY über den Variablennamen per EtherNet/IP; die FINS-Einstellungen, die Adressformen, die Datentypen, Lesen, Schreiben und die Gerätesuche.
Der Treiber Omron spricht mit Omron-Steuerungen in einer ihrer beiden Sprachen, die je Gerät
gewählt wird. Eine CJ-, CS- oder CP-Steuerung, ebenso eine NJ oder NX im CJ-Speichermodus, wird
über FINS mit der Speicheradresse gelesen, so geschrieben, wie Omrons Programmiersoftware sie
schreibt: D100, W0.01, CIO100.05. Eine NJ-, NX- oder NY-Steuerung wird über EtherNet/IP mit
dem Namen einer Variable gelesen, die sie im Netzwerk veröffentlicht, etwa Level oder
Motor.Speed. Eine Station liest beide Arten nebeneinander unter dem einen Treiber. Legen Sie im
Connector ein Gerät unter dem Treiber Omron an und wählen Sie sein Protokoll; der
Bereich zeigt nur die Felder, die dieses Protokoll verwendet.
Protokolle
| Protokoll | Steuerungen | Tags werden adressiert über | Port |
|---|---|---|---|
| FINS | CJ1, CJ2, CS1, CP1 und die anderen CJ-, CS- und CP-Steuerungen mit Ethernet-Port oder Ethernet-Einheit; eine NJ oder NX im CJ-Speichermodus | Speicheradresse, etwa D100 oder W0.01 |
standardmäßig 9600 |
| NJ/NX-Tags nach Name | NJ-, NX- und NY-Steuerungen, etwa NJ501, NJ301, NJ101, NX1P2, NX102, NX502, NX701 und NY5 | Variablenname, etwa Level oder Motor.Speed |
keiner: EtherNet/IP antwortet auf seinem Standardport 44818 |
FINS ist der Standard, und ein neues Gerät beginnt damit. Das Protokoll ist eine Einstellung des Geräts, eine CJ2 und eine NX1P2 stehen also unter demselben Treiber, jede in ihrer eigenen Sprache gelesen. Ein Wechsel des Protokolls behält die FINS-Einstellungen so, wie sie zurückgelassen wurden, für den Fall, dass FINS zurückkommt, und jedes Tag des Geräts liest seine Adresse von da an im neuen Protokoll: Sein Datentyp stellt sich auf einen ein, den die Adresse dort zulässt, und eine Adresse, die das neue Protokoll nicht lesen kann, bleibt auf der Seite des Tags markiert, bis sie korrigiert ist.
Verbindung
| Feld | Bedeutung | Standard |
|---|---|---|
| Hostadresse | IP-Adresse oder Hostname des Ethernet-Ports oder der Ethernet-Einheit der Steuerung. | leer |
| Protokoll | FINS oder NJ/NX-Tags nach Name. Die Zeile darunter sagt, was das geltende Protokoll liest: "Speicherbereiche von CJ-, CS- und CP-Steuerungen und einer NJ/NX im CJ-Speichermodus." oder "Variablen, die eine NJ-, NX- oder NY-Steuerung im Netzwerk veröffentlicht, nach Name über EtherNet/IP gelesen." | FINS |
| Port | Nur FINS: der Port, auf dem die Steuerung FINS beantwortet, derselbe über UDP und über TCP, 1 bis 65535. Ein leeres Feld zeigt 9600 grau, und das Gerät wird über diesen Port angewählt. Ein über Tag-Namen gelesenes Gerät hat kein Portfeld. | 9600 |
| Abfrageintervall (ms) | Leseperiode des ganzen Geräts für Tags, die sie nicht überschreiben. | 1.000 |
Die Kopfzeile des Geräts zeigt den zusammengesetzten Endpunkt. Ein FINS-Gerät schreibt alle seine
Einstellungen hinein, wobei ein Knoten 0 für automatisch steht, zum Beispiel
omron://192.168.250.1:9600?protocol=fins&transport=udp&network=0&node=0&unit=0&source=0&timeoutMs=2000.
Ein über Tag-Namen gelesenes Gerät nennt nur seinen Host und sein Protokoll, omron://192.168.250.1?protocol=njnx.
Jedes Tag kann ein eigenes Abfrageintervall (ms) setzen; der Wert 0 am Tag fällt auf das
Intervall des Geräts zurück.
Die Steuerung vorbereiten
Eine NJ-, NX- oder NY-Steuerung, die über den Namen gelesen wird, stellt nur die globalen Variablen bereit, die sie im Netzwerk veröffentlicht. Das Veröffentlichen ist ein Attribut jeder Variable, in Sysmac Studio gesetzt und in die Steuerung übertragen. Eine über FINS gelesene Steuerung braucht keine solche Einstellung.
| Einstellung | Wo in Sysmac Studio | Ohne sie |
|---|---|---|
| Network Publish auf Publish Only (oder Input bzw. Output für eine Variable, die auch eine Tag-Datenverbindung nutzt), an jeder globalen Variable, die die Station liest oder schreibt | Programming > Data > Global Variables, die Spalte Network Publish der Variable. Übertragen Sie das Projekt in die Steuerung (Controller > Synchronize). | Die Steuerung antwortet, dass sie keine Variable mit diesem Namen bereitstellt, genau wie bei einem Namen, den es nicht gibt. Das Tag liest schlechte Qualität, und die anderen Tags des Geräts lesen weiter. |
Die Variable eines Programms, eine lokale Variable, lässt sich nicht veröffentlichen: Deklarieren Sie sie unter den globalen Variablen oder kopieren Sie sie im Programm in eine globale Variable.
Antwortet die Steuerung, dass sie keine Variable mit dem Namen eines Tags bereitstellt, nennt die Seite des Geräts die Variable und die Tags, die sie lesen, mit beiden Ursachen (ein Name, den es nicht gibt, oder eine Variable, die nicht veröffentlicht ist) und diesen Schritten, in einem Hinweis, der von selbst verschwindet, sobald die Variable liest; die Seite des Tags trägt denselben Hinweis. Das Journal und der Agent lesen dieselben Schritte.
Die Karte FINS
Ein über FINS gelesenes Gerät trägt unter seiner Karte Verbindung eine Karte FINS: worin seine Anfragen reisen, an wen sie sich richten und wie lange jede auf ihre Antwort wartet. Ein über Tag-Namen gelesenes Gerät hat diese Karte nicht.
| Feld | Bedeutung | Standard |
|---|---|---|
| Transportprotokoll | UDP: "Ein Datagramm je Anfrage, beantwortet an den Port, von dem es kam: die Voreinstellung der Ethernet-Ports von Omron." TCP: "Eine Verbindung, in der die Steuerung dieser Station ihren FINS-Knoten zuweist." | UDP |
| Netzwerk | "Das FINS-Netzwerk der Steuerung: 0 für das Netzwerk dieser Station, 1 bis 127 über die Routing-Tabellen der Steuerungen." | 0 |
| SPS-Knoten | Der FINS-Knoten der Steuerung, 1 bis 254. Leer zeigt das Feld "Automatisch": über UDP die letzte Zahl der IP-Adresse der Steuerung (eine Steuerung unter 192.168.250.1 ist Knoten 1), über TCP der Knoten, den die Steuerung beim Öffnen der Verbindung meldet. |
Automatisch |
| Einheit | "Die Einheit in der Steuerung, die antwortet: 0 für die CPU-Einheit." Bis 255. | 0 |
| Knoten der Station | Nur UDP: der FINS-Knoten dieser Station, 1 bis 254. Leer zeigt das Feld "Automatisch": die letzte Zahl der IP-Adresse dieser Station in dem Netzwerk, über das sie die Steuerung erreicht. Über TCP wird das Feld nicht gezeichnet, weil die Steuerung den Knoten in der Verbindung zuweist. | Automatisch |
| Zeitlimit für die Antwort (ms) | "Wie lange eine FINS-Anfrage auf ihre Antwort wartet." 100 bis 60.000. | 2.000 |
Eine Zahl außerhalb ihres Bereichs wird unter dem Feld abgelehnt, zum Beispiel "Geben Sie eine Zahl zwischen 0 und 127 ein.", und das Feld kehrt zum geltenden Wert zurück. Ein Wechsel des Transports auf TCP behält den für UDP eingetragenen Knoten der Station, den das Gerät dann nicht verwendet.
Host Link auf einer seriellen Leitung
Eine CP1E-, CP1L-, CP1H-, CJ- oder CS-Steuerung, die nur eine serielle Schnittstelle hat (RS-232C, oder RS-485 und RS-422A über eine Optionsplatine oder einen Umsetzer), wird über FINS per Host Link gelesen, über eine serielle Leitung des Omron-Treibers: ein COM-Port, den sich bis zu 32 Steuerungen teilen, von denen jede auf ihre eigene Einheitennummer antwortet. Legen Sie die Leitung mit Leitung hinzufügen in der Tabelle Serielle Leitungen auf der Seite des Treibers an, setzen Sie Serieller Port, Baudrate und Serielles Format auf das, was an den seriellen Schnittstellen der Steuerungen eingestellt ist (der Rest der Seite der Leitung steht unter Serielle Leitungen), aktivieren Sie sie und fügen Sie dann jede Steuerung mit Gerät hinzufügen auf der Seite der Leitung hinzu.
| Einstellung | Wo | Wert |
|---|---|---|
| Modus der Schnittstelle | Das PLC Setup der Steuerung, für die serielle Schnittstelle, an der die Leitung hängt | Host Link |
| Baudrate und Format | Die Leitung | Wie die Schnittstellen der Steuerungen eingestellt sind; eine Host-Link-Schnittstelle kommt ab Werk mit 9600 Baud und 7E2 |
| Unit-ID | Die Karte Verbindung des Geräts, neben Serielle Leitung · fest | Die Host-Link-Einheitennummer der Steuerung, 0 bis 31, wie ihr PLC Setup sie festlegt. Ein neues Gerät nimmt die erste freie Nummer der Leitung; eine Nummer, die schon eine andere Steuerung der Leitung hat, wird abgelehnt |
| Zeitlimit für die Antwort (ms) | Die Karte FINS des Geräts | 100 bis 60.000; 2.000 |
Ein Gerät auf einer Leitung wird für immer über FINS gelesen: Es hat kein Feld Protokoll, Hostadresse oder Port, und seine Karte FINS zeigt nur "FINS über Host Link auf dieser seriellen Leitung, an die Steuerung, deren Einheitennummer (im PLC Setup für ihren seriellen Port eingestellt) die Unit-ID oben ist." und das Zeitlimit für die Antwort (ms), denn die Anfrage geht an die CPU-Einheit der Steuerung, die der Bus adressiert, und kein Netzwerkfeld gilt. Es wechselt nie ins Netzwerk, und ein Netzwerkgerät wechselt nie auf eine Leitung. Seine Tags werden wie über das Netzwerk adressiert (D100, W0.01), und sein Endpunkt nennt die Leitung und die Einheit, zum Beispiel omron://serial/<line id>/COM5/9600/7E2?protocol=fins&transport=hostlink&hostLinkUnit=0&timeoutMs=2000.
| Auf einer seriellen Leitung | Was geschieht |
|---|---|
| Mehrere Steuerungen auf einer Leitung | Eine Anfrage und ihre Antwort nach der anderen für die ganze Leitung; die Antwort einer anderen Einheit oder Störungen auf der Leitung werden übergangen |
| Eine Steuerung, die nicht innerhalb ihres Zeitlimits antwortet | Dieses Gerät verbindet sich neu; die anderen Steuerungen der Leitung lesen weiter |
Die Steuerung hält den Rahmen für beschädigt und antwortet mit einem Host-Link-Endcode, etwa 13 (FCS error) |
Das Gerät verbindet sich neu |
| Die Schnittstelle fällt aus, etwa wenn der Adapter gezogen wird | Jedes Gerät der Leitung verbindet sich neu; die Schnittstelle wird nach einer Pause von 1 Sekunde wieder geöffnet, die sich bis zu einer Minute verdoppelt |
| Ein Text-Tag | Höchstens 534 Zeichen, so viel trägt ein Host-Link-Rahmen |
Die Gerätesuche durchsucht keine serielle Leitung: Fügen Sie jede Steuerung über ihre Einheitennummer hinzu.
Adressierung
Ein Tag wird über ein einziges Feld auf seiner Karte Quelle adressiert, benannt nach dem Protokoll des Geräts: Speicheradresse über FINS, Variablenname bei einem über Tag-Namen gelesenen Gerät, mit dem Hinweis des Protokolls darunter. Eine Adresse, die der Treiber nicht lesen kann, wird auf der Seite des Tags dort abgelehnt, wo sie eingegeben wird, mit dem Grund. Die schreibgeschützte Zeile Quelladresse (Bus) der Karte Quelle zeigt die Adresse, die der Treiber erhält.
Speicheradressen (FINS)
Eine Speicheradresse besteht aus den Buchstaben des Bereichs, der Wortnummer dezimal und, für ein einzelnes Bit, einem Punkt und dem Bit, 00 bis 15. Groß- und Kleinschreibung spielt keine Rolle, und die älteren Schreibweisen werden ebenfalls gelesen.
| Bereich | Beispiele | Wörter | Auch geschrieben als |
|---|---|---|---|
| CIO | CIO100, CIO100.05, 100.05 |
0 bis 6143 | eine bloße Zahl, die eine CIO-Adresse ist |
| Arbeitsbereich (W) | W0, W0.01 |
0 bis 511 | WR |
| Haltebereich (H) | H10, H10.00 |
0 bis 1535 | HR |
| Hilfsbereich (A) | A100, A100.03 |
0 bis 1471 | AR |
| Datenspeicher (D) | D100, D100.15 |
0 bis 32767 | DM |
| Erweiterter Datenspeicher (E) | E0_100, EA_0, E18_0 |
0 bis 32767 | die Bank hexadezimal, 0 bis 18, zwischen dem E und dem Unterstrich |
Jeder Bereich ist durch den größten begrenzt, den irgendeine CJ-, CS- oder CP-Steuerung hat (eine CJ2 hat 1.536 Haltewörter und Bänke des erweiterten Datenspeichers bis 18). Ein Wort oder eine Bank, die eine kleinere Steuerung nicht hat, ist die Antwort dieser Steuerung selbst, ein Fehler beim ersten Lesen des Tags (siehe Lesen). Was die Seite des Tags bei der Eingabe ablehnt:
| Sie geben ein | Die Seite des Tags sagt |
|---|---|
Etwas, das kein Bereich, kein Wort und kein Bit ist, etwa X100 oder D100. |
"Eine FINS-Speicheradresse ist der Bereich, das Wort und, für ein Bit, ein Punkt und das Bit, zum Beispiel D100, W0.01, CIO100.05, H10, A100 oder E0_100." |
Ein Wort hinter dem Ende seines Bereichs, etwa D40000 oder W512 |
"Dieses Wort liegt hinter dem letzten Wort seines Bereichs auf jeder CJ-, CS- oder CP-Steuerung." |
Ein Bit über 15, etwa W0.16 |
"Das Bit eines Worts ist von 00 bis 15 nummeriert." |
Eine Bank über 18, etwa E19_0 |
"Die Bänke des erweiterten Datenspeichers sind hexadezimal von 0 bis 18 nummeriert." |
Die Busadresse ist die Adresse in ihrer einen Schreibweise, das Bit zweistellig: 100.5 reist als
CIO100.05 und DM100 als D100. Ein Text-Tag hängt hinter einem ? die Zeichen an, die es
belegt; ein Text mit 16 Zeichen in D200 reist also als D200?16.
Variablennamen (NJ/NX)
Eine NJ-, NX- oder NY-Steuerung wird über den Namen einer globalen Variable gelesen, die sie im
Netzwerk veröffentlicht, in Sysmac Studio also eine Variable, deren Attribut Network Publish auf
Publish Only, Input oder Output steht (siehe Die Steuerung vorbereiten).
Eine Variable, die die Steuerung nicht veröffentlicht, lässt sich nicht über den Namen lesen. Ein Name besteht aus ASCII-Buchstaben, Ziffern und Unterstrichen,
beginnt nie mit einer Ziffer und hat einen Punkt vor dem Element einer Struktur und einen Index in
eckigen Klammern: Level, Motor.Speed, Temps[3], Grid[1,2]. Jede andere Form lehnt die Seite
des Tags ab: "Ein Variablenname besteht aus Buchstaben, Ziffern und Unterstrichen, beginnt nicht mit einer Ziffer und hat einen Punkt vor einem Element und einen Index in eckigen Klammern, zum Beispiel Level, Motor.Speed oder Temps[3]."
Ein Name in einer anderen Schrift, den Sysmac Studio zulässt, wird ebenso abgelehnt, weil die
EtherNet/IP-Anfrage ihn nicht tragen kann.
Die Steuerung listet ihre Variablen auf eine Weise auf, die dieser Treiber nicht liest; jedes Tag
eines über Tag-Namen gelesenen Geräts wird deshalb von Hand eingetragen. Ob die Steuerung einen
Namen veröffentlicht, ist ihre eigene Antwort, gegeben beim ersten Lesen des Tags. Es gibt kein
Versatzfeld: Ein Element wird für sich benannt, und ein Element eines BOOL-Feldes wird über seinen
eigenen Namen gelesen, etwa Flags[5]. Die Busadresse ist der Name, gefolgt von ?0, zum Beispiel
Motor.Speed?0.
Datentypen
Über FINS folgt der angebotene Datentyp der Adresse:
| Die Adresse nennt | Datentyp | Was gelesen wird |
|---|---|---|
Ein Bit, etwa W0.01 |
Boolean | Nur dieses Bit. |
Ein Wort, etwa D100 |
Int16 oder UInt16 | Das Wort. |
| Ein Wort und das folgende | Int32, UInt32 oder Float | Zwei Wörter, das niederwertige Wort an der Adresse und das höherwertige danach, so wie Omrons eigene Befehle ein Doppelwort ablegen. Das letzte Wort eines Bereichs beginnt kein Paar und bietet deshalb nur Int16, UInt16 und String an. |
| Ein Wort und die folgenden, als Text | String | Die Länge (Zeichen, leer = 16), die das Tag angibt, 1 bis 1998 Zeichen, zwei je Wort, das erste im höherwertigen Byte. Der Text endet an seinem ersten NUL. Auf einer seriellen Leitung 1 bis 534 Zeichen. |
Die Eingabe einer Adresse, die den Typ des Tags nicht zulässt, ändert den Typ in den, den die Adresse am natürlichsten liest: ein Boolean für ein Bit, ein Int16 für ein Wort. Ein Typ, den die Adresse nicht zulässt, wird mit den zulässigen abgelehnt, zum Beispiel "Die Adresse D100 wird als einer dieser Datentypen gelesen: Int16, UInt16, Int32, UInt32, Float, String." Es gibt keine Option für die Byte- oder Wortreihenfolge: FINS legt jedes Wort mit dem höherwertigen Byte zuerst ab, und der Treiber kümmert sich darum.
Ein über Tag-Namen gelesenes Gerät bietet jeden atomaren Typ seiner Steuerung an:
| Datentyp | Variablentyp in Sysmac Studio |
|---|---|
| Boolean | BOOL |
| SByte | SINT |
| Byte | USINT |
| Int16 | INT |
| UInt16 | UINT |
| Int32 | DINT |
| UInt32 | UDINT |
| Int64 | LINT |
| UInt64 | ULINT |
| Float | REAL |
| Double | LREAL |
Eine WORD-Variable wird als UInt16 gelesen, eine DWORD-Variable als UInt32. STRING-Variablen werden nicht gelesen, und String wird nicht angeboten. Ein Typ außerhalb der Liste wird mit ihr abgelehnt: "Eine Variable einer NJ/NX-Steuerung wird als einer dieser Datentypen gelesen: Boolean, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Float, Double."
Lesen
Über FINS führt das Gerät ein einziges Gespräch mit seiner Steuerung und sendet eine Anfrage nach der anderen, jedes Tag ein Lesen des Speicherbereichs für seine Wörter, und nimmt als Antwort nur die, die die Nummer genau dieser Anfrage trägt; eine verspätete Antwort wird also nie als die der nächsten gelesen. Bevor ein Tag gelesen wird, muss die Steuerung ein Lesen der Steuerungsdaten beantworten, mit einem beliebigen Endcode; das Modell, das sie nennt, wird ins Journal geschrieben. Was die Steuerung antwortet, entscheidet dann über jeden Lesevorgang:
| Die Steuerung antwortet | Der Lesevorgang |
|---|---|
| Normaler Abschluss | Der Wert. |
| Ein Endcode zum Punkt, etwa eine Adresse, die die Steuerung nicht hat | Dieses Tag bleibt ohne Wert, und sein Fehler nennt den Code und seine Bedeutung im Handbuch von Omron, zum Beispiel end code 0x1103 (address range error). Alle anderen Tags des Geräts lesen weiter. |
| Ein Endcode zum Weg zur Steuerung (0x01xx, 0x02xx, 0x03xx, 0x05xx), ein Zwischenknoten, dessen Zeit unterwegs abgelaufen ist, oder nichts innerhalb von Zeitlimit für die Antwort (ms) | Das Gerät verbindet sich neu, und seine Tags schlagen beim Lesen fehl, bis die Steuerung wieder antwortet. Die Regel jedes Tags für ein Gerät, das nicht geantwortet hat, entscheidet, was es zeigt. |
Ein über Tag-Namen gelesenes Gerät wird geprüft, indem die Steuerung nach einer Variable gefragt wird, die kein Programm deklariert: Die Antwort der Steuerung, dass es diesen Namen nicht gibt, ist eine Antwort der Steuerung. Seine Anfragen laufen über denselben EtherNet/IP-Code wie die des Treibers Rockwell EtherNet/IP und laufen nach 10 Sekunden in eine Zeitüberschreitung.
Schreiben
Tags, deren Zugriff Lesen und schreiben oder Nur schreiben ist, lassen sich schreiben; ein neues Tag beginnt als Nur lesen. Ein Schreibvorgang wartet in der Warteschlange des Geräts zusammen mit den Lesevorgängen, bis er an der Reihe ist, und sendet den verlangten Wert und nichts daneben:
| Das Tag liest | Was der Schreibvorgang sendet |
|---|---|
Ein FINS-Bit (W0.01) |
Nur dieses Bit: Die Steuerung ändert es an Ort und Stelle und lässt die anderen Bits des Worts, wie sie sind. |
| Ein FINS-Wort oder -Doppelwort | Den ganzen Wert, an der Adresse und bei zwei Wörtern im folgenden Wort. |
| Einen FINS-Text | Die ganze angegebene Länge, den Text vorn und NULs dahinter, damit von einem früheren, längeren Text nichts hinter ihm zurückgelesen wird. Ein Text, der nicht in die Länge passt, wird abgelehnt, nie gekürzt. |
| Eine NJ/NX-Variable | Den Wert, an diese Variable über ihren Namen; ein Element eines BOOL-Feldes als nur dieses BOOL. |
| Die Steuerung beantwortet einen FINS-Schreibvorgang mit | Der Schreibvorgang |
|---|---|
| Normaler Abschluss | Zugestellt. |
| Ein Endcode, der ihn ablehnt | Abgelehnt, und die Begründung nennt den Code und seine Bedeutung, zum Beispiel end code 0x2101 (read-only). |
| Nichts innerhalb von Zeitlimit für die Antwort (ms), oder ein Zwischenknoten, dessen Zeit unterwegs abgelaufen ist (0x0205) | Keine Antwort. |
Ein FINS-Schreibvorgang, dessen Wert der Typ des Tags nicht fassen kann, wird abgelehnt, bevor irgendetwas gesendet wird.
Gerätesuche
Die Seite des Treibers Omron trägt eine Karte Suchbereich mit einem einzigen, optionalen Feld, "Adresse der Steuerung für eine FINS-Abfrage, z. B. 192.168.250.1 (leer = nur NJ/NX per Broadcast)". Geräte suchen stellt dann bis zu zwei Fragen nacheinander:
| Frage | Wann | Was sie anbietet |
|---|---|---|
Ein Lesen der Steuerungsdaten über FINS und UDP, alle Knoten automatisch, gesendet an die Steuerung im Feld: eine IP-Adresse oder ein Name, mit :port, wenn die Steuerung FINS auf einem anderen Port als 9600 beantwortet. Die Fortschrittszeile lautet "192.168.250.1 wird über FINS gebeten, sich zu erkennen zu geben…". |
Nur wenn das Feld eine Adresse enthält. | Die Steuerung als FINS-Gerät, benannt nach dem Modell, mit dem sie antwortet, unter omron://<host>:<port>?protocol=fins&transport=udp&network=0&node=0&unit=0&source=0&timeoutMs=2000. Eine Steuerung, die nichts antwortet, bietet nichts an. |
| Die EtherNet/IP-Identitätsanfrage, als Rundruf in jedes Netz, in dem dieser Rechner ist. Die Fortschrittszeile nennt diese Netze: "Omron-NJ/NX-Steuerungen werden auf 192.168.0.255 gesucht…". | Jedes Mal. Der Suchlauf hört zu, bis 5 Sekunden ohne neue Antwort vergangen sind. | Jede NJ-, NX- oder NY-Steuerung, die antwortet, als über Tag-Namen gelesenes Gerät, benannt nach ihrem Produktnamen (etwa eine NX1P2). Ein NX-E/A-Koppler, dessen Produktname mit NX- beginnt, hält keine Variablen und wird übergangen, wie jedes andere Omron-Produkt. |
Keine der beiden Fragen findet Tags: Eine FINS-Steuerung veröffentlicht keine Liste ihrer Adressen, und eine NJ/NX listet ihre Variablen auf eine Weise auf, die der Treiber nicht liest; jeder Kandidat zeigt deshalb "Keine Tags gemeldet. Fügen Sie das Gerät hinzu, um die Tags in seinem Editor einzurichten." Was im Feld kein Host ist, wird darunter abgelehnt, und Geräte suchen wird grau: "Ein Omron-Suchlauf bittet die hier eingetragene Steuerung über FINS, sich zu erkennen zu geben: ihre IP-Adresse oder ihr Name, auf Wunsch mit Port (zum Beispiel 192.168.250.1 oder 192.168.250.1:9600). Leer lassen, um nur per Broadcast nach NJ/NX-Steuerungen zu suchen." Eine Steuerung in einem Netz, in dem dieser Rechner nicht ist, antwortet nicht auf den Rundruf; legen Sie sie von Hand an. Der Suchlauf von Rockwell EtherNet/IP hört denselben Rundruf und überlässt jede Omron-Steuerung diesem. Das übrige Verhalten des Suchlaufs steht unter Gerätesuche.
Agent-Werkzeuge
driver_capabilities beschreibt diesen Treiber unter omron: seine beiden Protokolle, jedes mit den
Gerätefeldern, den Adressformen und den Datentypen, die es annimmt, die FINS-Transporte und
-Bereiche, das Schreiben und die Gerätesuche. device_upsert driver=Omron nimmt omronProtocol
(Fins oder NjNx) und über FINS finsTransport (Udp oder Tcp), finsNetwork, finsNode
(0 für automatisch), finsUnit, finsSourceNode (nur UDP, 0 für automatisch) und
finsResponseTimeoutMs; ein über Tag-Namen gelesenes Gerät nimmt weder Port noch FINS-Feld.
tag_upsert nimmt die Speicheradresse oder den Variablennamen als address, den Typ als
opcUaType (weggelassen erhält ein Bit Boolean und ein Wort Int16) und die Länge eines FINS-Texts
als wireQuantity. device_discover driver=Omron startet den Suchlauf, mit target für die
FINS-Abfrage. Eine über UDP gelesene CJ2 und eine über Tag-Namen gelesene NX1P2:
device_upsert driver=Omron name=Press host=192.168.250.1 omronProtocol=Fins finsTransport=Udp
tag_upsert device=Press name=Level address=D100 opcUaType=Float
device_upsert driver=Omron name=Filler host=192.168.250.2 omronProtocol=NjNx
tag_upsert device=Filler name=Speed address=Motor.Speed opcUaType=Float
Eine Steuerung auf einer seriellen Leitung hängt an einer Leitung dieses Treibers: serial_line_upsert driver=Omron legt die Leitung an, und device_upsert driver=Omron serialLineId=<id> fügt die Steuerung über Host Link hinzu (finsTransport=HostLink, das die Leitung vorgibt), mit unitId, ihrer Einheitennummer 0 bis 31 (weggelassen die erste freie), und finsResponseTimeoutMs; die Netzwerkfelder werden dort abgelehnt. Eine CP1L mit Einheit 0 an COM5:
serial_line_upsert driver=Omron name=HostLink serialPort=COM5 baudRate=9600 serialFormat=7E2
device_upsert driver=Omron name=Mixer serialLineId=<the line's id> unitId=0
tag_upsert device=Mixer name=Level address=D100 opcUaType=Int16
Die übrigen Werkzeuge stehen unter Agent-Werkzeuge.
Grenzen, die man kennen sollte
- Eine Steuerung, die nur die älteren Host-Link-Befehle des C-Modus spricht, etwa eine CPM1, eine CPM2, eine CQM1 oder eine C200HS, wird nicht gelesen, weder auf einer seriellen Leitung noch über einen Umsetzer: Der Treiber sendet nur FINS-Befehle.
- Timer und Zähler werden über FINS nicht angeboten: Ihr Istwert liegt je nach Einrichtung der Steuerung in BCD oder binär vor, und nichts in einer FINS-Antwort sagt, in welcher Form. Lesen Sie einen solchen Wert über ein Wort, in das das Programm ihn kopiert.
- Die Variablen einer NJ/NX-Steuerung werden nie aufgelistet, weder auf der Seite des Tags noch durch einen Suchlauf: Jeder Name wird eingetragen.
- Ein über Tag-Namen gelesenes Gerät liest einen atomaren Wert je Tag. STRING-Variablen, eine ganze Struktur und ein ganzes Feld werden nicht gelesen; ein Element wird über seinen Namen gelesen.
- Der Treiber sendet drei FINS-Befehle und keinen anderen: Lesen eines Speicherbereichs, Schreiben eines Speicherbereichs und Lesen der Steuerungsdaten. Er ändert nie die Betriebsart der Steuerung, ihre Uhr oder ihr Programm.
Gut zu wissen
- Über UDP sendet die Station jede Anfrage von einem eigenen Port, und die Steuerung antwortet an diesen Port; so sind die Ethernet-Ports von Omron ab Werk eingestellt. Eine Ethernet-Einheit mit statischer Adressumsetzung antwortet stattdessen an Port 9600 der Station, auf dem der Treiber nicht hört: Lesen Sie eine solche Steuerung über TCP.
- Ein FINS-Netzwerk außer 0 wird über die in den Steuerungen eingestellten Routing-Tabellen erreicht; die Station selbst leitet nichts weiter.
- Eine NJ/NX-Steuerung wird zuerst über die CIP-Route
1,0gefragt und, wenn diese keine Antwort bekommt, über 18 gefolgt von der eigenen IP-Adresse der Steuerung, etwa18,192.168.250.1; die Route, die geantwortet hat, wird beim nächsten Mal zuerst versucht. Es gibt kein Feld für die Route. - Jedes FINS-Tag ist eine eigene Anfrage, und ein Gerät sendet eine nach der anderen; die Dauer einer Leserunde wächst also mit der Zahl seiner Tags.