Letzter Fehler SMS versenden mit einer ETH150GSM

LARIFARI

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle

Ich möchte, um SMS mit einer ETH150GSM zu versenden, eine Array of String mit Phoenix Worx Express initialisieren. Das Arbeitsblatt für Dateitypen "sys-flag-types" habe ich mit

TYPE
ARRAY_OF_WORD_0_1 : ARRAY[0..1] OF WORD;
END_TYPE


erweitert und erfolgreich kompiliert. So bald ich für den Funktionsbaustein SMS_SEND an dem Eingang DATA den erstellten Datentyp ARRAY_OF_WORD_0_1 verwende, erscheind nach dem kompilieren die Fehlermeldung:

STD_CNF.STD_RES: Die Initialisierung von Multi-Element-Variablen wird in der aktuellen Build-Einstellung nicht unterstützt!


Hab schon alles mögliche ausprobiert, immer der selbe Fehler. Weiß jemand von Euch da eine Lösung? Sonerbarerweise habe ich bei meinem allerserten Versuch, ich weiß nicht wie, eine SMS mit Text versenden können. Ich vermute mit einem einfachem STRING. Aber da zeigt der jetzt immer den Fehler "Falscher Anfangswert" an. Gleiches auch bei einem STRING(160) o. ä.

Vorab schon mal vielen Dank.
Frank
 
In einem ARRAY[0..1] OF WORD kannst Du mal gerade 4 Byte (4 ASCII-Zeichen) unterbringen. Das brauchst Du, um eine SMS zu versenden?
Ich kenne leider die Thematik nicht näher, vermute aber, dass Dich vielleicht der DatenTyp WORD bzw. sein Name auf eine falsche Fähre gelockt hat? ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Heinileini

Du hast Recht und mich darauf aufmerksam gemacht, ich habe mich verschrieben, es werden zwei Strings und nicht Word benötigt. Es sollen ja auch bist zu den SMS üblichen 160 Zeichen dargestellt werden. Anders als oben in meinem Beitrag steht in meinem Worx-Express auch richtig:

TYPE
ARR_SMS_DATA_STR_0_1 : ARRAY [0..1] OF STRING;
END_TYPE

Aber selbes Problem, so bald ich für den Funktionsbaustein SMS_SEND an dem Eingang DATA den erstellten Datentyp ARR_SMS_DATA_STR_0_1 verwende, erscheind nach dem kompilieren die Fehlermeldung:

STD_CNF.STD_RES: Die Initialisierung von Multi-Element-Variablen wird in der aktuellen Build-Einstellung nicht unterstützt!


Bitte entschuldigt die falschen Angaben in meinem ersten Beitrag.
 
Moin Frank,
da anscheinend qualifizierte Antworten zu Deinem Problem noch auf sich warten lassen, versuche ich es mal mit meinem deutlich-weniger-als-Halbwissen, diesen Thread irgendwie anzuschieben.

Die Initialisierung von Multi-Element-Variablen wird in der aktuellen Build-Einstellung nicht unterstützt!

1. zu "aktuelle Build-Einstellung":
Was ist Build-Einstellung? Ich vermute, dass Du irgendwo dem Compiler sagen kannst, dass er Multi-Element-Variablen initialisieren können soll. Vielleicht ist das eine kostenpflichtige (?) Option, die Dir nicht zur Verfügung steht?

2. zu "Initialisierung":
Unter Initialisierung verstehe ich, dass der Compiler Variablen mit einem Wert vorbesetzt. Ist es das, was Du bei diesem Array vergeblich versuchst?
Vielleicht stimmt die Syntax an dieser Stelle nicht?
Ich denke, Du könntest ersatzweise die gewünschte "Grundstellung" der Array-Elemente "zu Fuss" programmieren, ehe Dein Projekt an der Unwilligkeit des Compilers scheitern muss.

3. zu "Multi-Element-Variablen":
Damit dürfte Dein Array gemeint sein. Ein Array mit nur zwei Elementen ist ja nicht so wahnsinnig "multi", dass man es nicht durch zwei einzelne Variablen ersetzen könnte, wenn man einen überschaubaren Mehraufwand in Kauf nimmt?

4. zu "ARRAY[0..1] OF STRING":
Ich könnte mir vorstellen, dass der Compiler beim DatenTyp STRING gerne eine LängenAngabe sehen würde. Fehlt sie vielleicht? Gibt es eine Möglichkeit eine LängenAngabe hinzuzufügen?

Gruss, Heinileini

PS:
5. zu "Sobald ich für den Funktionsbaustein SMS_SEND an dem Eingang DATA den erstellten Datentyp ARRAY_OF_WORD_0_1 verwende, erscheint nach dem Kompilieren die Fehlermeldung ...":
Anscheinend mag der SMS_SEND am Eingang DATA keine Arrays? Hast Du Beispiele, was an DATA zu verschalten ist? Geht evtl. Array Of Char?
Gibt es von SMS_SEND evtl. einen neueren Stand, der mit einem Array Of String etwas anzufangen weiss?
Warum willst Du an DATA ein Array übergeben?
Wie erfährt der SMS_SEND, auf welches Element des Arrays er zugreifen soll?
Soll er beide Elemente bzw. Strings hintereinander hängen? Das könntest Du vor dem Aufruf von SMS_SEND tun und an ihn das Ergebnis in einer "normalen" StringVariable übergeben.

6. zu "Das Arbeitsblatt für Dateitypen 'sys-flag-types' habe ich mit
TYPE
ARRAY_OF_WORD_0_1 : ARRAY[0..1] OF WORD;
END_TYPE
erweitert und erfolgreich kompiliert.":
Was sind denn 'sys-flag-types'? Flags sind doch normalerweise vom Typ BOOL und sys-flags vom BetriebsSystem belegte, vordefinierte Bits. Gehört die Deklaration von benutzerdefinierten DatenTypen wirklich dort hin? Na ja, der Compiler akzeptiert es anscheinend.
 
Zuletzt bearbeitet:
Hallo Heinileini

Schon einmal vielen Dank für Deine Antwort. Auch ich besitze nur Halbwissen, quasi learning by doing. Leider ist hier eine Grenze für mich erreicht... Deine Fragen versuche ich nun genau damit zu beantworten:
Zu 1: Die Build-Einstellungen sind in der Programmierebene bei dem Hardwarebaum zu finden. Dort sind wohl die Variablen hinterlegt.
Zu 2 und 6: Unter Worx Express kann ich für Dateitypen kein neues Arbeitsblatt erstellen, aber in einem anderen Beitrag habe ich gelesen das es ausreicht, in einem vorhandenen Arbeitsblatt (ein anderes beschreibbares als das mit der Bezeichnung "sys-flag-types" habe ich nicht gefunden) mit der Variable zu erweitern, eben mit:
TYPE
ARR_SMS_DATA_STR_0_1 : ARRAY [0..1] OF STRING;
END_TYPE
Das Arbeitsblatt für sich ist nach dem kompilieren ohne Fehler. Die nun zwei Strings werden auch richtig im Initialisierungsfenster für Multi-Elementvariablen angezeigt und können beschrieben werden.
Zu 3: Setze ich an dem SMS-SEND Eingang DATA nur einen String, zeigt der immer nach dem ersten eingesetzten Zeichen den Fehler "Falscher Anfangswert" Im Prinzip würden mir für die Alamierung mit einer SMS auch 80 Zeichen (einfacher String) reichen.
Zu 4: Hab ich nirgens gelesen und ich wüsste auch nicht, wo ich die eingeben müsste.
Zu 5:Weil das lt. Bausteinbeschreibung erforderlich sein soll(ILC 150 GSM/GPRS Nr. 2916545).An den DATA verschalte ich einen SMS-Text wie z. B "Alarm! Rauchmelder angesprochen!". Array of Char geht nicht. Array of String, weil der Text länger als 80 Zeichen sein könnte. Wie erfährt der SMS_SEND, auf welches Element des Arrays er zugreifen soll? Keine Ahnung.Zu 6: Nur beim kompilieren des Arbeitsblattes 'sys-flag-types'. Beim kompilieren des ganzen dann der besagte Fehler. Für mich unverständlich und leider nicht mehr nachvollziehbar, bei meinem aller ersten Versuch, ohne dem Array_of _String habe ich einen Text versendet bekommen. Ich vermute, ich habe da einen normalen String verwendet, aber wie geschrieben, jetzt kommt immer "falscher Anfangswert".

Irgendetwas habe ich übersehen oder Worx-Express gibt das nicht her, wo ich aber nirgens einen Hinweis gesehen habe. Ich habe es auch schon auf einem anderen Rechner versucht. Auch ohne erfolg blieb das Kopieren der Bibliothek aus einem anderen Worx-Projekt in mein Projekt. Die gleiche Fehlermeldung.
 
Zurück
Oben