Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Почему при отключении модема от питания его статус (уровень сигнала и т.п.) не сбрасывается в СПК? И если подать питание на модем позже чем на СПК он не обновляет статус.
Последний раз редактировалось Эдуард_Н; 07.02.2024 в 07:24.
Последний раз редактировалось Евгений Кислов; 07.02.2024 в 08:47.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Добрый день, подскажите пожалуйста есть ли примеры отправки нескольких СМС подряд?
К примеру при информировании о неисправностях, аварийные сигналы могут приходить по несколько штук одновременно и по каждому нужно отправить СМС с описанием аварии.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Да, делал! Где-то даже на форуме описывал. Найти не могу, форум не ищет слова короче трёх букв, а SMS под них попадает.
Короче. Описываю алгоритм ещё раз.
1. Сделал структуру одного элемента очереди. Она состояла из строки-текста СМСки, номера абонента и булевого флага "Активно", который означал что данные в структуре есть и ещё НЕ обработаны.
Пусть будет так (пишу на псевдокоде):
STRUCT SMSQueueItem
Message : STRING;
Number : STRING;
Active : BOOL := FALSE;
END_STRUCT
2. Сделал два массива очередей: на входящие СМСки и на исходящие СМСки.
Границы описал константами, чтобы в циклах не накосячить и чтобы легко менять размер очередей.
VAR_CONSTANT
SMSMaxQueueSize : WORD := 30;
END_VAR
SMSQueueIn : ARRAY [1..SMSMaxQueueSize] OF SMSQueueItem;
SMSQueueOut : ARRAY [1..SMSMaxQueueSize] OF SMSQueueItem;
3. Сделал функцию AddNew**** которая принимает номер и текст и делает следующее:
* В цикле перебирает массив SMSQueueOut и ищет первый элемент с Active = FALSE.
* Запихивает туда переданные данные
* Помечает элемент Active = TRUE
4. Сделал программу, которая делает следующее:
* По таймеру BLINK раз в 3-5 сек (задаётся константой) ищет в массиве SMSQueueOut первый элемент с Active = TRUE, запихиает данные из него в модем и помечает этот элемент как Active = FALSE
* По флагу от Модема о том, что пришла СМСка, ищет первый элемент массива SMSQueueIn с Active = FALSE, пихает туда данные из СМСки и помечает его как Active = TRUE
* Отдельным куском кода крутится по массиву SMSQueueIn, ищет первый элемент с Active = TRUE, извлекает оттуда данные СМСки и что-то с ними делает.
Конкретно у меня - проверяет входящий номер по списку разрешённых и проверяет PIN-код (выдумал формат СМСки "PIN Команда" с разделением пробелом).
Если номер в списке разрешённых и если PIN-код верный - то Команда из СМСки кидается в функцию ProcessSMSCommand, которая уже делает что-то в ПЛК.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab
Cs-Cs Огромное спасибо за разъяснения, примерно так себе это и представлял, буду пробовать, но с массивами я пока на вы.
Хорошая тема для видео на канале CodesysOneLove, в продолжении цикла видео о сортировке насосов...
Да, без проблем!
Про видео... ну, если Евгений Кислов сделает про очередь на массивах - будет круто (это его канал).
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab
Доброго времени суток. Возникла необходимость проверки баланса, будут сим-карты случайного оператора. Соответственно и номера запроса баланса тоже будут разные. В компоненте реализована жесткая привязка номера проверки баланса к оператору. Пробовал сделать сам, через АТ-команды, не получилось. Как решить эту задачу? Или подскажите, как в компоненте реализован механизм получения баланса?