www.beck-ipc.com
www.beck-ipc.comwww.beck-ipc.com  | ImprintImprint
FAQFAQ  | SearchSearch  |
  |LoginLogin

Codesys-Zeiger unter einer RTOS-Task initialsieren!

Questions and discussions about the CoDeSys editor V2.3.
Hallo,
habe mit Hilfe der Modbus.lib von Beck einen Modbus TCP Server für Codesys erstellt. Dieser tausch die Daten über die externe Bibliotheksfunktion "ZARSC_MBTCP_SERVER" (Siehe Anhang) mit der Codesys-Anwendung aus. Dazu wird in der Anwendung zwei Felder für HOLDING- und INPUT-Register definiert und deren Adressen an die Bibliotheksfunktion "ZARSC_MBTCP_SERVER" übergeben. Der Modbus TCP Server läuft in einer eigenen Task, daher belastet die Codesys-Anwendung nicht zusätzlich. Da der unter Codesys zur Verfügung stehende Arbeitsspeicher doch recht begrenzt ist, hatte ich mir überlegt die Felder für HOLDING- und INPUT-Register in die Task des MBTCP Servers auszulagern. Wir setzen einen SC143 mit 8MB Arbeitspeicher ein für den wir sowieso keine weiter Verwendung haben. Das Problem ist nun aber, dass man Zeiger die unter Codesys initialisiert werden von "Außen" verwenden kann, aber leider das Spielchen nicht in die andere Richtung funktioniert. Daher, zwei unter Codesys erzeugte Zeiger (NULL-Pointer), die man in der Server-Task initialisiert kommen nicht in der Codesys-Anwendung an. Ich habe den Verdacht, dass das RTS daran Schuld ist. Daher, nicht dafür tauglich ist die unter Codesys erstellten Zeiger von Außerhalb zu initialisieren, damit die Codesys-Anwendung auf Arrays außerhalb Codesys zugreifen kann.
Meine Frage ist nun: Gibt es für mein Problem eine Lösung und wenn ja, wie sieht die aus?????

Return to CoDeSys Editor V2.3


Who is online

Users browsing this forum: No registered users and 0 guests


cron