Подскажите кто нибудь, как из панели задавать несколько телефонных номеров для модема, с учётом, что количество номеров телефонов может меняться. Может както так ? Проект прилагаю.
Подскажите кто нибудь, как из панели задавать несколько телефонных номеров для модема, с учётом, что количество номеров телефонов может меняться. Может както так ? Проект прилагаю.
Посмотрите здесь http://www.owen.ru/forum/showthread....l=1#post135067, это продолжение для этого варианта http://www.owen.ru/forum/showthread....l=1#post135055
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Хорошо бы описание библиотеки по подробнее сделать. И ещё: А можете сделать в ней такие же блоки, как в библиотеке к КДС3?
Какие моменты руководства на ваш взгляд надо расписать более подробно?
Действия не очень работают во второй версии КДС (на языке ФБ, в СТ все нормально), поэтому почти все реализовано через входа а не через отдельные блоки.
Примерно так (как вариант):
1. Создайте в Modbus устройстве нужное количество DWORD (4байта) регистров и назовите их, например, PhoneNum_1 ... PhoneNum_N
2. Создайте необходимые переменные, например
VAR_GLOBAL
PhoneList: ARRAY [0..N] OF STRING(12); (*Список телефонов для рассылки смс*)
PhoneListCount: BYTE; (* Количество реальных телефонов в списке *)
END_VAR
3. Создать PRG с примерно следующим содержимым
PROGRAM Dword2phone
VAR
i:BYTE;
END_VAR
i:=0;
IF PhoneNum_1 > 320000000 AND PhoneNum_1 < 999999999 THEN
PhoneList[i]:=CONCAT('380',DWORD_TO_STRING(PhoneNum_1));
i:=i+1;
END_IF;
.....
IF PhoneNum_N > 320000000 AND PhoneNum_N < 999999999 THEN
PhoneList[i]:=CONCAT('380',DWORD_TO_STRING(PhoneNum_N));
i:=i+1;
END_IF;
PhoneListCount:=i;
4.При вызове FB массовой рассылки я предварительно по фронту вызываю эту PRGшку и
FB_SMS_SL.NumCount:=PhoneListCount;(*тут имя экземпляра поставить*)
p.s. 32... и 99... - номера всех мобильных операторов находятся в этом диапазоне (не только мобильные но и коды городов)
p.p.s. Про панель не написал, но и так ясно что в эти регистры с панели надо писать номера телефонов типа 661234567 (66 - Jeans МТС Украина)
Последний раз редактировалось Olex007; 12.05.2014 в 12:37.
А можно с наглеть ? сделайте, пожалуйста, что написали в фаил проекта. Будет для всех как живой пример
Да проекта, как такового, и нет - прорабатываю на макете отдельные кусочки кода. Панель даже не подключал пока - просто создал три DWORD в Modbus слейве и прямо из Codesys в онлайне вбиваю туда один, два или три номера. Всё что надо - описал выше. Ну могу еще картинку основной программы вставить. Запуск отправки SMSок от кнопки Start-Stop, заблокированной модулем Button и названной StartSMS.
Kaljaki1.pngKaljaki2.png
Последний раз редактировалось Olex007; 12.05.2014 в 23:19.
ПЛК 100 + модем MC35i. Модем подключен к RS-232. Остановился на втором примере, смс не получается принять. Терминалом в режиме PDU смс и отправляются и получаются нормально. Но команду AT+CMGL=0,1 и через терминал модем не понимает.
AT+CMGL=0,1
ERROR
AT+CMGL=0
OK
AT+CMGL=4
+CMGL: 1,1,,20
07919730071111F1040B919736796892F40000415041013481 610131
Скриншот 2014-05-14 17.10.21.png
В команде "AT+CMGL=stat<stat><stat>" должен быть только один параметр 0 или 1 или 2 или 3 или 4, а Вы пытаетесь указать два.
stat (Mesage status) из таблицы
Захват-1.png
См раздел 12.5 из руководства</stat></stat>
Последний раз редактировалось petera; 14.05.2014 в 17:53.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg