Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Добрый день.
Не ругайтесь, я новичок.
Есть ПЛК-100 и модем ПМ-01.
Соединены по RS-485.
В модеме отключено эхо.
Все делаю по описанию библиотеки и беру программу с примера, но после запуска "cfg_ok" остается "False".
Что я могу делать не так?
ГУРУ!!! Помогите, горит проект, форум перерыл.
Минимальное время цикла ПЛК ставил 10, 20... мс, не помогает
И постоянно висит флаг BUSY блока FB_SMS_SR
Приложил скрины:
pic1.jpg pic2.jpg pic3.jpg pic4.jpg
Последний раз редактировалось vano_id; 09.03.2015 в 10:29.
Скачал предоставленные Вами архивы библиотеки Owen Sms.lib. После извлечения и попытки открыть с помощью CoDeSys появляется окошко с предложением ввести Password. Объясните пожалуйста, что мне нужно сделать , чтобы библиотека открылась и могла быть присоединеной к проекту?
Друзья, подскажите пожалуйста к первому посту темы прикреплена актуальная версия библиотеки?
Или нужно пробежаться по всем 60 страницам в поисках последней версии?
42 is the answer
Библиотека прикрепленная к первому сообщению системы работает нормально. У меня все получилось.
При работе с модемом ПМ01 на скорости 9600 (я думаю с любым модемом и на всех скоростях, ситуация примерно совпадает) наблюдается следующий эффект.
Я попробовал отправлять сообщения каждую секунду, т.е. подавать передний фронт на вход SendSms функционального блока FB_SMS_SR раз в секунду.
Получателю приходило только каждое восьмое сообщение.
В моем проекте, события о которых нужно уведомлять по СМС могут происходить и чаще раза в 8 секунд, а допустить потерю данных нельзя.
Я разработал функциональный блок QUEUE_STRING, реализующий очередь строк.
Прикрепляю экспорт-файл с ФБ и выкладываю код функционального блока. Если кто-то заинтересуется, посмотрите, может найдутся ошибки которые я упустил.
Код:FUNCTION_BLOCK QUEUE_STRING VAR_INPUT ITEM_IN : STRING; (*Item that you need to enqueue*) ENQUEUE : BOOL; (*On this front ITEM_IN will be enqueued*) DEQUEUE : BOOL; (*On this front next item will be dequeued to ITEM_OUT*) SIZE : BYTE := 10; (*Size of queue*) RESET : BOOL; END_VAR VAR_OUTPUT ITEM_OUT : STRING; ERROR_CODE : WORD; (*0 - OK, 1 - overflow, 2 - queue is empty*) END_VAR VAR data : ARRAY[0..255] OF STRING; head : BYTE; tail : BYTE; count : BYTE; R_TRIG_ENQUEUE : R_TRIG; R_TRIG_DEQUEUE : R_TRIG; R_TRIG_RESET : R_TRIG; END_VARКод:R_TRIG_ENQUEUE(CLK := ENQUEUE); R_TRIG_DEQUEUE(CLK := DEQUEUE); R_TRIG_RESET(CLK := RESET); IF R_TRIG_ENQUEUE.Q THEN IF count < SIZE - 1 THEN data[head] := ITEM_IN; head := head + 1; IF head = SIZE THEN head := 0; END_IF count := count + 1; ERROR_CODE := 0; ELSE ERROR_CODE := 1; END_IF END_IF IF R_TRIG_DEQUEUE.Q THEN IF count > 0 THEN ITEM_OUT := data[tail]; tail := tail + 1; IF tail = SIZE THEN tail := 0; END_IF count := count - 1; ERROR_CODE := 0; ELSE ERROR_CODE := 2; END_IF END_IF IF R_TRIG_RESET.Q THEN head := 0; tail := 0; count := 0; ERROR_CODE := 0; END_IF
Последний раз редактировалось 42ia; 21.05.2015 в 15:15.
42 is the answer
Возник вопрос. Использую библиотеку SmsOwenLib и модуль Modem для GPRS связи. Соответственно, когда мне необходимо отправить сообщения, на модем подается команда стоп и при ModemLine=0 уже начинается работа библиотеки. При этом при попытки открыть порт через OpenCom из библиотеки SmsOwenLib порт открыть не получается. Решил удалить OpenCom и, о чудо, отправка сообщений заработала. Соответственно хотел уточнить правильно ли я понимаю, что при наличии подмодуля Modem в конфигурации, порт всегда открыт, даже если на модем приходит команда остановки и из программы можно исключать блоки OpenCom и FB_SMS_CFG?
хочу связать ваш модем с другим плк на codesys 2. Можно использовать вашу библиотеку? Если нет есть ли свободные?
ошибку дает - ошибка адреса %qb ...
codesys 2 плк abb ac500