habe ein FB um SMS's zu versenden, und dafür in verschiedene Programmbausteine Instanzen angelegt.
Wie kann ich jetzt verhindern dass 2 Instanzen des SMS-Funktionsblocks zeitgleich aufgerufen werden, denn dies könnte doch das SMS-Modem durcheinanderbringen, oder ?!
Grüsse,
Dieter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich glaube Dieter meint, dass es seiner Menung nach nicht gut ist, dass zwei eigenständige Instanzen auf die selben (Hardware -) Adressen zugreifen und dies zu seltsamen Fehlern führen könnte. ( Sagen wir mal Text an den Falschen Empfänger schicken - weil die Nummer vielleicht eher als der zu sendende Text auf die Hardware geschrieben wird.
Am einfachsten wäre es wohl, wenn Du konsequent nur eine Instanz des FB's verwendest - dann kann auch nichts schiefgehen. Ansonsten würde man dafür wohl Semaphoren verwenden. Frage an die anderen: Wird das unterstützt? Wie?
Gruß,
Tobi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Vorsicht! Die Bausteine für das versenden/empfangen von SMS (GSM oder Festnetz) werden nicht in einem Programmzyklus vollständig abgearbeitet!
Allerdings müssen diese Bausteine zyklisch aufgerufen werden, um die Verarbeitung des Kommunikationsprotokolls sicher zu stellen.
Der Start der Kommunikation erfolgt durch eine positive Flanke am Sendebit. Bevor der Sendeauftrag ausgelöst wird, muss mit dem Statuswort /-bit des Bausteins überprüft werden, ob der vorangehende Auftrag abgeschlossen wurde. Aus der Dokumentation zu den jeweiligen Bausteinen ist ersichtlich, welche Variablen für die Statusanzeige verwendet werden.
Gruss
Markus
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
habe ein FB um SMS's zu versenden, und dafür in verschiedene Programmbausteine Instanzen angelegt.
Wie kann ich jetzt verhindern dass 2 Instanzen des SMS-Funktionsblocks zeitgleich aufgerufen werden, denn dies könnte doch das SMS-Modem durcheinanderbringen, oder ?!
Grüsse,
Dieter
Hallo Dieter
Ein gleichzeitigen Aufruf eines Bausteins kann nur Passieren wenn aus mehreren Task der Baustein aufgerufen wird.
Wenn aus mehrere Task's Daten bearbeitet werden kann dieses durch die Funktion " SysSemEnter (SysLibSem.lib)" organisiert werden.
mfG Jochen
Ich glaube Dieter meint, dass es seiner Menung nach nicht gut ist, dass zwei eigenständige Instanzen auf die selben (Hardware -) Adressen zugreifen und dies zu seltsamen Fehlern führen könnte. ( Sagen wir mal Text an den Falschen Empfänger schicken - weil die Nummer vielleicht eher als der zu sendende Text auf die Hardware geschrieben wird.
Am einfachsten wäre es wohl, wenn Du konsequent nur eine Instanz des FB's verwendest - dann kann auch nichts schiefgehen. Ansonsten würde man dafür wohl Semaphoren verwenden. Frage an die anderen: Wird das unterstützt? Wie?
Gruß,
Tobi
Vorsicht! Die Bausteine für das versenden/empfangen von SMS (GSM oder Festnetz) werden nicht in einem Programmzyklus vollständig abgearbeitet!
Allerdings müssen diese Bausteine zyklisch aufgerufen werden, um die Verarbeitung des Kommunikationsprotokolls sicher zu stellen.
Der Start der Kommunikation erfolgt durch eine positive Flanke am Sendebit. Bevor der Sendeauftrag ausgelöst wird, muss mit dem Statuswort /-bit des Bausteins überprüft werden, ob der vorangehende Auftrag abgeschlossen wurde. Aus der Dokumentation zu den jeweiligen Bausteinen ist ersichtlich, welche Variablen für die Statusanzeige verwendet werden.
Gruss
Markus