Страница 137 из 154 ПерваяПервая ... 3787127135136137138139147 ... ПоследняяПоследняя
Показано с 1,361 по 1,370 из 1537

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

  1. #1361

    По умолчанию

    Разобрался. Спасибо.

  2. #1362

    По умолчанию Вопрос по опросу Modbus

    Пользуюсь СПК 107 необходима вывести на регулятор мощности(TRM-1M) заданное значение ,через дерево проекта все выходит , но когда пытаюсь сделать тоже самое через библиотеку Modbus регулятор мощности не опрашивается , хотя все сетевые параметры указаны верно. [CODE][/// [1]





    Settings_COM2.sPort:=2;
    Settings_COM2.byStopBits:=1;
    Settings_COM2.byParity:=1;
    Settings_COM2.ulBaudrate:=9600;
    Settings_COM2.ulTimeout:=0;
    Settings_COM2.ulBufferSize:=0;

    SettingsEX_COM2.byByteSize:=8;


    // [2] открываем COM-порт
    COM_Service_COM2
    (
    Enable:=TRUE,
    Settings:=Settings_COM2,
    Sets_Ex:=SettingsEX_COM2,
    Task:=OPEN_TSK,
    );
    CASE iModule OF

    0:

    // [3] запускаем ФБ опроса модуля МВ110-8А
    MV110_8A
    (
    Enable:=COM_Service_COM2.Ready,
    Mode:=MB_RTU,
    DevAddr:=1,
    FirstAddr:=2,
    Quantity:=4,
    ComHandle:=COM_Service_COM2.handle,
    TimeOut:=T#150MS,
    Buffer:=abyBuffer,
    );


    // [4] если ФБ опроса модуля завершил работу...
    IF MV110_8A.Complete THEN
    // ...и ошибки отсутствуют, то забираем буфер модуля
    IF MV110_8A.Exception=0 THEN
    abyMV110_8A_data:=abyBuffer;

    // байты 0 и 1 содержат статус измерения входа 1
    // склеиваем их в WORD и декодируем в текстовое сообщение
    wMV110_8A_input1_status:=BYTE_TO_WORD(abyMV110_8A_ data[1]) OR SHL(BYTE_TO_WORD(abyMV110_8A_data[0]),8);
    wsMV110_8A_input1_status:=Mx110Assistant.MvStatusT oWstring(wMV110_8A_input1_status);

    //
    // переставляем байты местами и преобразуем в REAL
    _2WORD_TO_REAL.abyBytes[3]:=abyMV110_8A_data[4];
    _2WORD_TO_REAL.abyBytes[2]:=abyMV110_8A_data[5];
    _2WORD_TO_REAL.abyBytes[1]:=abyMV110_8A_data[6];
    _2WORD_TO_REAL.abyBytes[0]:=abyMV110_8A_data[7];

    rMV110_8A_input1:=_2WORD_TO_REAL.rReal;

    END_IF
    iModule:=1;
    // завершаем опрос модуля МВ110-8А
    MV110_8A(Enable:=FALSE, Buffer:=abyBuffer);
    END_IF
    1:

    // [3.0.1] запускаем ФБ опроса модуля МВ110-16Д
    MV110_16D
    (
    Enable:=COM_Service_COM2.Ready,
    Mode:=MB_RTU,
    DevAddr:=26,
    FirstAddr:=6,
    Quantity:=5,
    ComHandle:=COM_Service_COM2.handle,
    TimeOut:=T#150MS,
    Buffer:=abyMV110_16D_buffer,
    );

    // [3.0.2] если ФБ опроса модуля завершил работу...
    IF MV110_16D.Complete THEN
    // ...и ошибки отсутствуют, то забираем значения модуля
    IF MV110_16D.Exception=0 THEN
    abyMV110_16D_data:=abyMV110_16D_buffer;

    xMV110_16D_input1:=abyMV110_16D_data[1].0;
    xMV110_16D_input2:=abyMV110_16D_data[2].0;
    xMV110_16D_input6:=abyMV110_16D_data[6].0;
    xMV110_16D_input7:=abyMV110_16D_data[7].0;
    xMV110_16D_input16:=abyMV110_16D_data[16].0;
    END_IF

    // завершаем опрос модуля МВ110-16Д
    MV110_16D(Enable:=FALSE, Buffer:=abyMV110_16D_buffer);

    // переходим к опросу модуля МУ110-8Р
    iModule:=2;

    // очищаем буфер модуля МУ110-8Р
    abyMY110_8R_buffer:=abyEmptyBuffer;
    END_IF
    2:


    // [3.1.1] копируем записываемое значение в буфер ФБ

    abyMY110_8R_buffer[1].0:=xMY110_8R_output1;
    abyMY110_8R_buffer[2].0:=xMY110_8R_output2;
    abyMY110_8R_buffer[3].0:=xMY110_8R_output3;
    abyMY110_8R_buffer[4].0:=xMY110_8R_output4;
    abyMY110_8R_buffer[5].0:=xMY110_8R_output5;
    abyMY110_8R_buffer[7].0:=xMY110_8R_output7;
    // [3.1.2] запускаем ФБ опроса модуля МУ110-8Р
    MY110_8R
    (
    Enable:=COM_SERVICE_COM2.Ready,
    Mode:=MB_RTU,
    DevAddr:=9,
    FirstAddr:=50,
    Quantity:=6,
    ComHandle:=COM_SERVICE_COM2.handle,
    TimeOut:=T#150MS,
    Buffer:=abyMY110_8R_buffer,
    );

    // [3.1.3] если ФБ опроса модуля завершил работу...
    IF MY110_8R.Complete THEN

    // ...то завершаем опрос модуля МУ110-8Р...
    MY110_8R(Enable:=FALSE, Buffer:=abyMY110_8R_buffer);


    iModule:=3;
    END_IF
    3:

    TRM
    (
    Enable:=COM_Service_COM2.Ready,
    Mode:=MB_RTU,
    DevAddr:=43,
    RegAddr:=60,
    Value:=50,
    ComHandle:=COM_Service_COM2.handle,
    TimeOut:=T#300MS,

    );
    IF TRM.Complete THEN

    // ...то завершаем опрос
    TRM(Enable:=FALSE );

    // ...и начинаем новый цикл опроса
    iModule:=0;
    END_IF
    xTRM:=100; //////GVL.AnalogTRM2;
    ;

    END_CASE
    ]

  3. #1363

    По умолчанию

    Напишите настройки сети, которые забиты в модулях. Для 8N1 должны быть такие настройки, 2.3 1 Настройки сети 2.jpg Для 3.5 1 Параметры сети.jpg
    Лучше выложите свой проект, в расширенных настройках, Добавить файл.

    У вас похоже 2.3, тогда вы пишите не в тот раздел, тут раздел Codesys 3.5
    Последний раз редактировалось kondor3000; 19.09.2024 в 15:19.

  4. #1364

    По умолчанию

    версия 3.5
    Вложения Вложения

  5. #1365

    По умолчанию

    Цитата Сообщение от zoom32 Посмотреть сообщение
    версия 3.5
    У меня ваш пример сильно тормозит, скачайте пример с сайта и используйте его.
    Не надо пытаться одновременно работать через биб-ку и СОМ порт одновременно, делайте разные проекты.
    Не надо мутить с настройками сети, делайте всё стандартным 8N1, только скорость лучше увеличить.

    Настройки сети и в шаблоне и в биб-ке не соответствуют стандартным для Овена 9600, 8N1. Скорость лучше поставить 115200.
    Если работаете с биб-кой лучше полностью удалить СОМ1 в дереве.
    Последний раз редактировалось kondor3000; 26.09.2024 в 22:12.

  6. #1366

    По умолчанию

    Добрый день!
    Столкнулся с непонятной для меня проблемой.
    У меня на СПК107 на одном порту RS-485 поочередно опрашиваются два прибора газоанализатор СТМ-30м(опрос по Modbus) и электросчетчик Меркурий 230(опрос по библиотеке Овен).
    Опрос запускается, но через некоторое время отваливается газоанализатор и востановить его возможно только сбросом питания, а если я отключаю отпрос электросчетчика, то он не виснит.
    Пробовал увеличивать паузу между опросами не помогает.
    Подскажите, как опрос другого прибора может влиять на состояние газоанализатора

  7. #1367

    По умолчанию

    Цитата Сообщение от viktor1974 Посмотреть сообщение
    Добрый день!
    Столкнулся с непонятной для меня проблемой.
    У меня на СПК107 на одном порту RS-485 поочередно опрашиваются два прибора газоанализатор СТМ-30м(опрос по Modbus) и электросчетчик Меркурий 230(опрос по библиотеке Овен).
    Опрос запускается, но через некоторое время отваливается газоанализатор и востановить его возможно только сбросом питания, а если я отключаю отпрос электросчетчика, то он не виснит.
    Пробовал увеличивать паузу между опросами не помогает.
    Подскажите, как опрос другого прибора может влиять на состояние газоанализатора
    На одном порту, один протокол с одинаковыми настройками сети. У вас разные протоколы поэтому и отваливается.
    Если очень надо, то с одинаковыми настройками сети можно работать с разными протоколами, но по очереди. Например 300-500 мс один протокол, потом другой.
    У меня работало, Модбас и Овен через 300 мс, по очереди.
    Последний раз редактировалось kondor3000; 16.10.2024 в 12:50.

  8. #1368

    По умолчанию

    настройки сети одинаковые 9600,8,N,1
    опрос последовательный, сначала ГА, пауза, ЭС, пауза и так далее...
    вопрос в том, что сначала все идет, а через минут 5, алес.., а если один ГА, ТО РАБОТАЕТ

  9. #1369

    По умолчанию

    Цитата Сообщение от viktor1974 Посмотреть сообщение
    настройки сети одинаковые 9600,8,N,1
    опрос последовательный, сначала ГА, пауза, ЭС, пауза и так далее...
    вопрос в том, что сначала все идет, а через минут 5, алес.., а если один ГА, ТО РАБОТАЕТ
    Уже всё написал, если не работает, то разносите по разным портам.

  10. #1370

    По умолчанию

    хотелось бы причину понять, почему опрос ЭС приводит к зависанию ГА, ему должно быть все равно, что по сети чужие сигналы бегают, он их должен просто отбросить

Страница 137 из 154 ПерваяПервая ... 3787127135136137138139147 ... ПоследняяПоследняя

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 13:38

Ваши права

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