Antworten in den erstellten Foren
-
AutorPost
-
Februar 8, 2021 bei 5: 58 pm als Antwort auf: Modbus RTU-Kommunikation mit SDM120 Energiezähler #58986tommas cavalliniPartecipante
Zunächst entschuldige ich mich für die Verwirrung: Ich muss sowohl das EnergyMeter als auch die Magnetventile lesen, zu letzterem muss ich auch schreiben: Da beide in RTU kommunizieren, dachte ich, ich könnte hier direkt fragen, ohne ein anderes Thema öffnen zu müssen.
Als ich zu uns kam, verstand ich die vorgeschlagene Lösung nicht: Ich dachte daran, die Lese- und Schreibphase zu trennen, indem ich die FBs nicht in Kaskade verband. Tatsächlich muss das Lesen kontinuierlich sein, während das Schreiben nur dann erfolgt, wenn e se Ich möchte einige Parameter ändern.
Februar 8, 2021 bei 11: 33 als Antwort auf: Modbus RTU-Kommunikation mit SDM120 Energiezähler #58983tommas cavalliniPartecipantePerfekt, jetzt liegt mein Problem im Zeitmanagement des Lesens und Schreibens von zehn Magnetventilen.
Wenn es zum Lesen ausreicht, das Programm der Back-Aufgabe so zuzuordnen, dass es regelmäßig ausgeführt wird, möchte ich das Schreiben stattdessen nur unter einer bestimmten Bedingung ausführen können: Ich habe gesehen, dass LogicLab nicht bereitstellt Event-Aufgaben, wie könnte ich das tun?
Februar 4, 2021 bei 5: 03 pm als Antwort auf: Stellen Sie eine Modbus TCP / IP-Verbindung her #58949tommas cavalliniPartecipantePerfekt, ich habe alles versucht, wie du mir erklärt hast und es funktioniert, also vielen Dank.
Aber jetzt habe ich ein anderes Problem: Ich wurde gebeten, das Lesen in Modbus zu verzögern, um ein Lesen pro Minute durchzuführen. Um dies zu tun, dachte ich daran, auf die Delay-Stimme zu reagieren: Ist es richtig, eine Verzögerung von 60 für mein Ende zu setzen, oder wäre es besser, eine eTON vor Enable zu setzen, um mit dem Timer zu verzögern?
Für den Fall, dass ich die Verzögerung (Putting 60) mit zwei ModbusMastern in Kaskade ändern möchte, sollte ich im Delay-Element des zweiten FB 61 (60 der vorherigen + 1 Verzögerung zwischen den beiden Messwerten) setzen oder ich muss nur einfügen die Verzögerung zwischen den beiden Ablesungen (1 Sek.) und in der ersten lassen 60?
tommas cavalliniPartecipanteIch sage Ihnen sofort, dass das Lesen der Werte vom Datenhersteller leider nicht erfolgreich ist, wenn ich sie verwende VarSwap (Ich habe am Anfang darüber nachgedacht, dies zu verwenden, aber es kommt eine sehr hohe Anzahl heraus), während ich den FB benutze BEArrayToVar es funktioniert und gibt mir den Wert richtig gelesen.
Im Übrigen befinden sich 36 der 40 in aufeinanderfolgenden Registern, sodass ich für diese einen einzelnen Lesebefehl ausführen kann (wobei die erste Adresse angegeben wird, von der aus unter Adresse und unter Punkte der zu beginnen ist ModbusMaster wie viele Daten ich lesen möchte, in meinem Fall 36 * 2, 72). In den ModbusMaster-Puffer werde ich dann ein Array einfügen, das 36 Daten enthalten kann (ArrayA genannt, um klar zu sein), mit dem dieses Array dann verbunden wird BEArrayToVar am Eingang Source und Destination Ich werde ein anderes Array (ArrayB) setzen, das alle richtig gelesenen Werte enthält, oder?
Meine Frage ist: Nach jedem Lesen gehen die gelesenen Daten automatisch in ArrayA ein und werden ausgeführt BEArrayToVar und wird in ArrayB gespeichert. Beim nächsten Lesezyklus gehen die zweiten gelesenen Daten unmittelbar nach dem vorherigen automatisch an ArrayA und dann an ArrayB, das in einer Reihe gespeichert ist, richtig?
Januar 29, 2021 bei 3: 11 pm als Antwort auf: Stellen Sie eine Modbus TCP / IP-Verbindung her #58905tommas cavalliniPartecipanteIch habe eine Modbus-TCP / IP-Kommunikation mit einem Datenhersteller unter Verwendung der FBs SysTCPClient und ModbusMaster durchgeführt. Am Ende habe ich nach dem Empfang der Daten in IEE754 eine Konvertierung mit dem FB BEArrayToVar durchgeführt.
Zu diesem Zeitpunkt besteht das Problem darin, dass ich 40 Werte vom selben Gerät lesen und jeden in einer eigenen Variablen speichern muss: Was kann ich tun?
Ich habe auch den von ihr empfohlenen FB gesehen, den ACModbus, aber das Problem ist, dass ich nach dem Lesen dieser Variablen unbedingt die Konvertierung mit BEArrayToVar für jeden von ihnen einzeln durchführen und für jede der Daten eine Variable instanziieren muss, also ich Ich habe Angst, dass ich es nicht benutzen kann.
Was empfehlen Sie mir, um das Problem zu lösen?
Januar 28, 2021 bei 11: 21 als Antwort auf: Modbus RTU-Kommunikation mit SDM120 Energiezähler #58894tommas cavalliniPartecipanteJetzt ist das Problem aufgetreten, dass ich über die ModBus RTU-Verbindung auch Daten schreiben möchte. Also fragte ich mich: Wenn wir zum Lesen den varSwap-FB verwendet haben, um die Werte in REAL zu konvertieren, wie kann ich das zum Schreiben tun?
Ich dachte, ich würde die zu schreibenden Werte in das Buffer-Element des ModbusMaster-FB eingeben, aber ich glaube, ich habe verstanden, dass ich keinen REAL-Wert schreiben kann, sondern einen Wert im IEE754-Standard, oder?
Wie führe ich dann die VarSwap-Rückwärtskonvertierung durch?
Januar 15, 2021 bei 6: 14 pm als Antwort auf: Modbus RTU-Kommunikation mit SDM120 Energiezähler #58808tommas cavalliniPartecipanteIch habe die FB-Methode ausprobiert ModbusMaster Kaskade und es funktioniert, vielen Dank für die Hilfe!
Seine Videos und seine Erklärungen waren von grundlegender Bedeutung, insbesondere weil ich gerade in die Welt der SPS eingetreten bin. Ich bin ihm wirklich dankbar. Falls ich andere Zweifel habe, werde ich im Forum posten, dass es sehr gut gemacht ist und die Antworten schneller sind als ich erwartet hatte.
Januar 15, 2021 bei 10: 36 als Antwort auf: Modbus RTU-Kommunikation mit SDM120 Energiezähler #58805tommas cavalliniPartecipanteHallo, in der Zwischenzeit vielen Dank für Ihre Aufmerksamkeit. In meinem Projekt habe ich die FBs SysSerialPort und ModbusMaster sowie VarSwap verwendet.
Ich habe dann versucht, einen anderen ModbusMaster-FB (der den zweiten SDM120 mit Knoten 2 identifiziert) mit demselben FB für die serielle Schnittstelle zu verbinden. Im EN-Port des zweiten ModbusMaster habe ich einen eTON mit einer Zeit von 200 ms hinzugefügt, aber ich kann immer nur den ersten lesen (verbunden mit dem ersten ModbusMaster FB). Ich habe auch versucht, alles in zwei verschiedene Programme zu unterteilen, indem ich sie mit verschiedenen Aufgaben verknüpft habe, aber das Ergebnis ändert sich nicht, im Gegenteil, es liest nicht einmal mehr das erste.
Wie kann ich lösen? Nochmals vielen Dank im Voraus.
-
AutorPost