Страница 7 из 7 ПерваяПервая ... 567
Показано с 61 по 69 из 69

Тема: CODESYS V3.5. Работа с модемами

  1. #61
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,617

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Каковы критерии оптимальности?
    Сейчас они работают на скорости 19200, может перевести на 115200?

  2. #62

  3. #63
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,617

    По умолчанию

    Почему при отключении модема от питания его статус (уровень сигнала и т.п.) не сбрасывается в СПК? И если подать питание на модем позже чем на СПК он не обновляет статус.
    Последний раз редактировалось Эдуард_Н; 07.02.2024 в 07:24.

  4. #64
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,330

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    И если подать питание на модем позже чем на СПК он не обновляет статус.
    Мы планируем исправить это поведение в прошивке СПК210, дав возможность пользователю реанициализировать сеанс связи с модемом в любой момент времени.

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    Почему при отключении модема от питания его статус (уровень сигнала и т.п.) не сбрасывается в СПК?
    Проверим этот момент. Если он проявится - то постараемся исправить.

  5. #65

    По умолчанию

    Добрый день, подскажите пожалуйста есть ли примеры отправки нескольких СМС подряд?
    К примеру при информировании о неисправностях, аварийные сигналы могут приходить по несколько штук одновременно и по каждому нужно отправить СМС с описанием аварии.

  6. #66
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,330

    По умолчанию

    Цитата Сообщение от Ctakah133 Посмотреть сообщение
    Добрый день, подскажите пожалуйста есть ли примеры отправки нескольких СМС подряд?
    К примеру при информировании о неисправностях, аварийные сигналы могут приходить по несколько штук одновременно и по каждому нужно отправить СМС с описанием аварии.
    Добрый день.
    Готового примера нет.
    Помню, что Cs-Cs делал такое в своих проектах на базе очереди сообщений.
    Возможно, он поделится примером кода или опишет алгоритм в общем виде.

  7. #67

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Помню, что Cs-Cs делал такое в своих проектах на базе очереди сообщений.
    Возможно, он поделится примером кода или опишет алгоритм в общем виде.
    Да, делал! Где-то даже на форуме описывал. Найти не могу, форум не ищет слова короче трёх букв, а 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

  8. #68

    По умолчанию

    Cs-Cs Огромное спасибо за разъяснения, примерно так себе это и представлял, буду пробовать, но с массивами я пока на вы.
    Хорошая тема для видео на канале CodesysOneLove, в продолжении цикла видео о сортировке насосов...

  9. #69

    По умолчанию

    Да, без проблем!
    Про видео... ну, если Евгений Кислов сделает про очередь на массивах - будет круто (это его канал).
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

Страница 7 из 7 ПерваяПервая ... 567

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 14.09.2021, 12:23
  2. CoDeSys работа с массивами.
    от Роман26 в разделе Эксплуатация
    Ответов: 13
    Последнее сообщение: 10.08.2019, 07:52
  3. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21
  4. ОРМ работа с модемами СПЕКТР 433
    от Golem-xxx в разделе OWEN Proces Manager
    Ответов: 1
    Последнее сообщение: 15.02.2011, 14:28
  5. связьс несколькими модемами пм01
    от wal1958 в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 17.03.2010, 09:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •