Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Sms сообщения тревоги через Com порт
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
supdecar
Здравствуйте дорогие коллеги, ищу помощи с Desigo Siemens у меня стоит лицензия с последними обновлениями, столкнулся с такой проблемой:
Поставили задачу, надо через последовательный порт (com-порт) передавать сообщениями на ноутбук тревоги. Я создал модем в win7 как последовательный порт и поставил скорость порта 9600, после чего зашел в проект создал маршрутизацию до абонента и модема. В итоге алармы так и не передались, пробовал отправить вручную через окно послать сообщение выдает ошибку в Системной информации "Произошла ошибка при передаче события Пэйджер маршрутизатору". Через гипер терминал всё передается между компьютерами. Подскажите как решить проблему??? Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла[attachme
nt=89523:______.png]Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
supdecar
Решил вопрос передачи информации путем дополнительного оборудования (MOXA NPort 5110), но теперь проходит инициализация, но не передается само сообщение, я догадываюсь что проблема в строчке WAITFOR (ack, ERR_NO )

VAR sText, sMsgSend, sWaitstr, MAXLOOPS, ANSSELECT, ANSBUSY, ANSACCEPT, ANSABSENT, ANSTERMINATE;

CONVERT = 142 TO 91, 153 TO 92, 154 TO 94, 132 TO 123, 148 TO 124, 129 TO 126, 225 TO 30;

CHECKSUM = MODE_5,1;

// Please check in the manual if your Pager System is supporting messages which are up to 128 characters long.
// Some systems are only supporting messages up to 56 characters in length. If this is the case please
// change the variable MAXCHAR accordingly.
sText = MAXCHAR(Message, 128);
sMsgSend = "1" + stx + "1" + ^_ + ReceiverID + ^^ + "2" + ^_ + sText + ^^ + "3" + ^_ + "1" + ^^ + "4" + ^_ + "3" + etx;

sMsgSend = CHK(sMsgSend);

TIMEOUT = 10;
MAXLOOPS = 6;

ANSSELECT = "1" + ^E;
ANSBUSY = "7" +^_ + "1";
//ANSACCEPT = "7" +^_ + "2";
ANSACCEPT = "7" +^_ + "я"; // Zeichen 0FFH
ANSABSENT = "7" +^_ + "4";
ANSTERMINATE = "7" +^_ + "5";

DELAY 1;

LOOP 1 DO
TRANSMIT ("1" + ^E);
TRANSMIT ("2" + ^E);
WAITFOR(ack,ERR_NO);
IF ERR = ERR_NO THEN
TRANSMIT(^A + sMsgSend);
WAITFOR (ack,ERR_NO);
IF ERR = ERR_NO THEN
TRANSMIT(eot);
EXIT;
ENDIF;
ENDIF;
TRANSMIT(eot);
LEND;

IF ERR = ERR_NO THEN
LOOP MAXLOOPS DO
TRANSMIT ("2" + ^E);
WAITFOR(eot,ERR_NO,ANSSELECT,"REPLY");
IF ERR = "REPLY" THEN
TRANSMIT(ack);
WAITFOR(ANSBUSY,"STBUSY",ANSACCEPT,"STACCEPT",ANSABSENT,"STABSENT",ANSTERMINATE,"STTERMINATE");
IF ERR = "STBUSY" THEN
TRACE ("Pager busy"); // wait
ENDIF;
IF ERR = "STACCEPT" THEN
TRACE ("Call in queue");
ERR = ERR_NO;
ENDIF;
IF ERR = "STABSENT" THEN
TRACE ("Absent");
ENDIF;
IF ERR = "STTERMINATE" THEN
TRACE ("Pager unregistered");
ENDIF;
TRANSMIT(ack);
IF ERR <> "STBUSY" THEN
EXIT;
ENDIF;
ENDIF;
IF ERR = ERR_TIMEOUT THEN
EXIT;
ENDIF;
LEND;
ENDIF;

IF ERR = ERR_NO THEN
RETURN (TRUE); // successful
ELSE
RETURN (FALSE); // not successful
ENDIF;

В результате в гипертерминале появляется 12 и какой то знак, дальше десига подвисает и выдает ошибку передачи, помогите разобраться как передать сообщение и в чём проблема. Есть ли какая нибудь документация по Pager Script? И что такое ack?
supdecar
Удалив WAITFOR и всё что с ним связано удалось передать сообщение, теперь проблема осталось не решенной, как предавать тревоги, при составлении маршрутизации десига пишет: Произошла ошибка при передаче события Пэйджер маршрутизатору. Невозможно выполнить маршрутизацию событий из-за ошибок драйвера. 6 событий пропущено. Как решить данную проблему?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.