Прошу помощи в написании макроса для отправки СМС-сообщений через подключённый к панели GSM-модема.
Суть задачи. Есть ряд аварий, который выводится в Alarm List. При срабатывании нескольких аварий из этого списка нужно отправить соответствующую СМС на 4 номера.
Железо: SX2 (2 шт. по PLC Link), DOP107eg, Cinterion BGS2t (RS485)
Делал так:
Код: Выделить всё
#Background macro
IFB {RS232}1@M102 == ON THEN GOTO LABEL 1
IFB {RS232}1@M122 == ON THEN GOTO LABEL 2
IFB {RS232}1@M126 == ON THEN GOTO LABEL 3
IFB {RS232}1@M121 == ON THEN GOTO LABEL 4
LABEL 1
CALL 1
LABEL 2
CALL 2
LABEL 3
CALL 3
LABEL 4
CALL 4
#Submacro 1
$200 = INITCOM(1, 0, 1, 0, 0, 10, 0)
SELECTCOM(1)
CHR($20,"AT+CMGS="89911234567"")
$41=000DH
CHR($50,"AVARIA")
$56=001AH
$70=PUTCHARS($20,22,500)
Delay(1000)
$100=PUTCHARS($50,7,500)
CLEARCOMBUFFER(1, 1)
DELAY(10000)
$200 = INITCOM(1, 2, 0, 2, 0, 12, 0)
SELECTCOM(1)
CHR($20,"AT+CMGS="89921234567"")
$41=000DH
CHR($50,"AVARIA")
$56=001AH
$70=PUTCHARS($20,22,500)
Delay(1000)
$100=PUTCHARS($50,7,500)
CLEARCOMBUFFER(1, 1)
DELAY(10000)
$200 = INITCOM(1, 2, 0, 2, 0, 12, 0)
SELECTCOM(1)
CHR($20,"AT+CMGS="89931234567"")
$41=000DH
CHR($50,"AVARIA")
$56=001AH
$70=PUTCHARS($20,22,500)
Delay(1000)
$100=PUTCHARS($50,7,500)
CLEARCOMBUFFER(1, 1)
DELAY(10000)
$200 = INITCOM(1, 2, 0, 2, 0, 12, 0)
SELECTCOM(1)
CHR($20,"AT+CMGS="89941234567"")
$41=000DH
CHR($50,"AVARIA")
$56=001AH
$70=PUTCHARS($20,22,500)
Delay(1000)
$100=PUTCHARS($50,7,500)
CLEARCOMBUFFER(1, 1)
RET
В итоге, биты срабатывают, ничего не происходит.
Модем на предмет работоспособности проверил. Через терминал смс-ки отправляет.
При составлении макроса руководствовался документом DOP_and_GSM-modem.
пы.сы. Первый опыт работы с контроллерами Delta и их же панелями, не судите строго (: