Obsah

Přijímání SMS

Název funkce

RECEIVESMS

Volání v ST

TYPE KRATKY_STRING : STRING[160]; END_TYPE
PROGRAM TEST_RECEIVESMS
VAR_OUTPUT
    SMSRES : INT := 0;
    SMS_RECEIVE : BOOL := FALSE;
    SMS_CHANNEL : ARRAY[0..9] OF STRING;
    SMS_SENDER : ARRAY[0..9] OF KRATKY_STRING;
    SMS_MESSAGE : ARRAY[0..9] OF STRING;
    RECEIVE_TIME : ARRAY[0..9] OF DT;
    RESULT : ARRAY[0..9] OF INT;
    I : INT := 0;
END_VAR
 
IF SMS_RECEIVE THEN
    FOR i := 0 TO 9 DO
        RESULT[I] := MESSAGING.RECEIVESMS(CHANNEL => 
        SMS_CHANNEL[I], SENDER => SMS_SENDER[I], MESSAGE => 
        SMS_MESSAGE[I], RECEIVETIME => RECEIVE_TIME[I]);
    END_FOR;
    SMS_RECEIVE := FALSE;
END_IF;
MESSAGING.SENDSMS();
 
END_PROGRAM

Knihovna

MESSAGING

Verze

V1.0

Popis

Volaná funkce se dotazuje připojených modemů na přijaté SMS zprávy v každém výpočetním cyklu PLC. Tato funkce je určena pouze pro ST kód, tak aby funkce byla volaná pouze tehdy, když chceme zjistit stav příchozích zpráv.

Výstupy

Výstup Typ Význam
INT číselný status; výsledek kontroly nastavení systému
CHANNEL STRINGkanál, na kterém je připojen modem, který obdržel zprávu
SENDER STRINGodesílatel
MESSAGE STRINGpřijatá SMS zpráva (základní ASCII znaky)
RECEIVETIMEDT čas, kdy byla SMS zpráva přijata

Funkce

Při každém volání funkce receivesms v programu se funkce doptává připojených modemů na přijaté SMS zprávy. Výstupem je název kanálu channel, ze kterého byla SMS zpráva vyčtena, odesílatel sender, čas přijetí zprávy receivetime, samotná SMS zpráva message a výsledek čtení z daného místa.

Proměnná channel odkazuje na definované komunikační spojení. To je třeba vytvořit v možnostech PLC: Dvojklikem na PLC zobrazte jeho nabídku a vyberte záložku Definice hlášení a pravým kliknutím zobrazíte nabídku, ve které vyberete Přidat alarmový kanál.

Nyní definujete název, který je vstupem proměnné channel. Dále definujete typ spojení GSM. Kliknutím vyberete kanál a v jeho vlastnostech nastavíte port, na kterém bude RT komunikovat s modemem. Dále se definují komunikační vlastnosti kanálu. V případě zabezpečené SIM karty je třeba zadat PIN kód. Nakonec potvrdíte všechny změny kliknutím na OK v červeně označeném dialogu.

V případě použití některého ze standardně dodávaných modemů (Siemens TC-35, Wavecom), je možné vybrat v Nastavení AT příkazů předdefinované příkazy pro nastavení modemu. Následně klikněte na tlačítko Použít. Potřebné AT příkazy se následně doplní do tabulky. Zmáčkněte tlačítko Zavřít a potvrďte změny klinutím na OK v červeně označeném dialogu. V případě jiného typu modemu, je třeba nastavit modem jeho příslušnými AT příkazy. (V případě problému s nastavením jiného typu modemu kontaktujte technickou podporu Domat Control System.)

Výstupní proměnná result hlásí výsledek kontroly nastavení systému.

Číselný statusVýznam
0 OK
16 Neznámý kanál
24 Chyba - hodnota číselného statusu nelze určit
25 Nemožnost otevřít port nebo inicializovat GSM modem (např. chybně zadané číslo portu)
26 Timeout při provádění AT příkazu (default 2 s)
31 Není k dispozici žádná zpráva
42 Chyba GSM kanálu (např. špatný PIN, nedostupnost sítě, …)
jiné Interní chyba - kontaktujte technickou podporu Domat Control System

Příklad použití

Tato funkce může být použita k zadání řetězce (string) do PLC pomocí SMS zprávy. Příklad viz výše Volání v ST. Je zde použit standardní počet 10 úložných míst, ze kterých se vyčítají aktuální přijaté SMS zprávy. Všechny odpovídající místa v polích sms_receive, sms_channel, sms_sender, sms_message, receive_time a result jsou parametry jedné SMS zprávy. Aktuálně vyčtené zprávy mají na odpovídajícím místě v results číslo 0. V případě jiného čísla na některé z pozic results nedošlo k vyčtení SMS zprávy z tohoto místa a na odpovídající pozici v ostatních polích sms_receive, sms_channel, sms_sender, sms_message a receive_time je buď prázdné místo, nebo poslední zpráva, která byla na toto místo uložena. Velikost přijaté zprávy je omezena na 160 znaků.