Hardware Simulation Codesys 2.3 / Twincat

PaulAtreides

Level-1
Beiträge
34
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie kann ich am besten das Hardwareverhalten von Ein- und Ausgängen in TwinCat 2 simulieren?

Ich habe mir gedacht, dass ich einzelne Programme schreibe, die die Ein- und Ausgänge ansprechen und so das echte Verhalten der Hardware nacharmen.
Dafür würde ich gerne die TwinCAT_Configuration Verwenden um keine Änderung am eigentlichen Programm vornehmen zu müssen.
Leider kann ich da natürlich nicht auf Eingänge schreiben.

Hat hier jemand schon mal so etwas gemacht oder hat jemand ein Tipp für mich?
 
Ich weiß ja nicht was du simulieren willst.
Also in Codesys 3.5 kann man in der Simulation unter PLC_PRG Variablen, den Eingänge Werte zuweisen und kucken was dann am Ausgang passiert.
Wenn du das automatisch haben willst schreib ein Programm das den Eingängen Werte zuweist.
 
Moin,

wie wäre es damit: http://www.beckhoff.de/te1111/. Ziel dieses Tools ist es eine virtuelle Inbetriebnahme zu ermöglichen. Das bedeutet, du musst die Originalkonfiguration nicht anfassen und Deine Steuerung merkt nicht mal das sie gegen eine Simulation läuft. Du brauchst dafür lediglich einen zweiten PC ODER eine weitere Netzwerkkarte. Auf der Simulationsseite bekommt man dann ein gespiegeltes Prozessabbild und kann das Verhalten hinter den IOs programmieren.
 
Ob das mit TwinCat2 zusammenarbeitet? Eine Lösung mit TwinCat2 wäre mir lieber. Ich habe bei Beckhoff angerufen. Dort wurde mir der Tipp gegeben das Debug Programm in einem separaten Task laufen zu lassen und dann darüber die Eingänge und Ausgänge mit dem TwinCat System Manager zu verbinden. So richtig verstanden habe ich das allerdings nicht, da ich die Variablen nur mit der Hardware verbinden kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, die EtherCAT Simulation arbeitet auch mit TwinCAT 2 bzw. anderen EtherCAT Mastern zusammen, allerdings muss die Simulationsseite dann mit TwinCAT 3 programmiert werden.
Was der Support wahrscheinlich meinte ist, dass du dein Debug-Programm auch so aufbaust, dass es ein umgekehrtes Prozessabbild zur SPS hat. Soll heißen wenn du in der SPS eine Variable mit %Q* definierst, dann tust du das in deinem Debug Programm mit %I* noch einmal. Dann kannst anstatt zur realen Hardware zu dem Prozessabbild des Debugprogramms mappen. Oder du baust dein Debugprogram so auf, es wirklich ein ähnliches Prozessabbild wie die Hardware hat.
Für TwinCAT2 gibt es mit dem Simulation Manager auch ein Produkt, was dies automatisch für dich tut. Soll heißen wenn du ein TwinCAT2 Projekt hast, gibst du das im Simulation Manager an und dieser fragt dich dann wo die Debug SPS sein soll (auf dem gleichen PC oder einem anderen). Desweiteren wird dir dann auch gleich ein Debug-Programm angelegt mit gespiegelten Bausteinen drinnen. Wenn dies dann alles erstellt wurde und du deine Debug-SPS ausprogrammiert hast, kannst du mit dem Simulation Manager zwischen "Debug-" und Real-Mode hin und her schalten. Der Simulation Manager passt dann automatisch dein Mapping wieder an.
 
Was der Support wahrscheinlich meinte ist, dass du dein Debug-Programm auch so aufbaust, dass es ein umgekehrtes Prozessabbild zur SPS hat. Soll heißen wenn du in der SPS eine Variable mit %Q* definierst, dann tust du das in deinem Debug Programm mit %I* noch einmal. Dann kannst anstatt zur realen Hardware zu dem Prozessabbild des Debugprogramms mappen.
Wie mach ich das mit dem mappen? Im System Manager kann ich nur Hardware zuordnen aber keine Variablen aus anderen Tasks
 
Jetzt kommt es darauf an, wie du das machen willst. Nimmst du eine weitere SPS-Laufzeit? Oder nimmst du eine Program POU in der selben SPS?
In TwinCAT 2 kann man ja bis zu 4 SPS instanziieren. Wenn du eine über hast, dann kannst du die nehmen, dann musst du zum Hardware simulieren nicht dein Original SPS-Projekt anpassen.
Wenn Du nur in der selben SPS bleibst, dann musst du auch nicht mappen. Wenn du es doch willst, dann solltest du den Haken "Exclude same Image" rausnehmen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn Du nur in der selben SPS bleibst, dann musst du auch nicht mappen.
Was meinst du damit? Das versteh ich leider nicht. So lange arbeite ich noch nicht mit TwinCat / Codesys.
Ich würde am liebsten mein Original Programm gar nicht ändern. SPS Instanzen habe ich noch frei.
 
Dann belässt du das Original-Projekt so wie es ist!

Dazu längst Du noch eine zweite Simulations-SPS an. In dieser definierst du die E/A's die du als simulierte Hardware benötigst. Z.B. Du brauchtest ein paar digitale Ausgänge, verbaut hast Du dann vielleicht eine EL2004 (digitale Ausgangsklemme mit 4 Kanälen). Also legst du in deiner Simulations-SPS entweder 4 Eingangsvariablen vom Tool BOOL an (also: Channel01 AT%I* :BOOL; ...) oder wenn du die ganze Klemme willst eine Strukur mit allen 4 Channels der Klemme, der könntest du dann als Namen auch die BMK (Betriebsmittelkennzeichen bzw. Name) der Klemme geben. Sobald du das Projekt übersetzt und die *.tpy wieder im System Manager einließt, hast du dort im Prozessabbild genau das was du brauchst um aus dem Prozessabbild der Original-SPS auf die Gegenstelle in der Simulations-SPS zu Mappen. Das Ganze im Anhang mal als Bild in TwinCAT3, das sieht aber im Tc2 SystemManager bis auf die Icons analog aus.
Unbenannt2.PNG
 
Zurück
Oben