Best Answer - Posted by
Zottel
"Libnodave gestattet euch, beliebige DBs oder Bereiche daraus zu lesen und zu schreiben.
Das kann aus einem kleinen C-Programm erfolgen, das die Werte aus der Datenbank entnimmt und in die CPU schreibt oder umgekehrt.
Die Kommunikation würde über ISO over TCP erfolgen, der CP müßte dazu nicht notwendigerweise ein -IT sein.
Generell ist bei dieser Art von Screiben/Lesen damit zu rechnen, dass es asynchron zum SPS-Zyklus erfolgt. Daher würde ich einen Auftrag in den DB schreiben. Ein Datenwort sagt dass der Auftrag gültig ist. Dies lässt du zunächst auf 0. Nachdem Du den Block geschrieben hast, setzt du nur dieses Wort auf 1. Im SPS Programm schaust du nach, ob dort eine 1 steht (=neuer Auftrag). Wenn die SPS ihn bearbeitet hat, schreibt das SPS-Programm z.B. eine 2. Die fragt dein C-Programm ab und kann dann den nächsten Auftrag schicken oder die Ergebnisse abholen. Wenn du noch mehr Sicherheit brauchst, dass z.B. nach Netzwerkstörungen nichts verlorengeht oder doppelt ausgeführt/gespeichert wird gibst du jedem Datenblock noch eine laufende Nummer. So kann das neu startende C-Programm durch Rücklesen der Nummer "synchronisiert" werden.
Wenn Du kein C programmieren willst, sodern eine andere Sprache, lass es mich wissen."
Bookmarks