Показано с 1 по 8 из 8

Тема: Два вопроса кас. программирования ПЛК304

  1. #1
    Пользователь
    Регистрация
    07.12.2011
    Адрес
    г. Полтава, Украина
    Сообщений
    18

    Question Два вопроса кас. программирования ПЛК304

    Здравствуйте! Столкнулся с двумя проблемами при программировании ПЛК304. Хотелось бы получить некоторую помощь в их решении.

    №1: пытаюсь организовать обмен между ПЛК и модулями расширения входов/выходов (9 штук) через порт RS485 по протоколу Modbus RTU; на основании доступных примеров написал программу на SFC, в которой начальный шаг - открытие порта; каждый из последующих шагов - считывание/запись состояния входов/выходов отдельного модуля; условие перехода к следующему шагу, т.е. к опросу следующего модуля, - флаг завершения операции опроса (done) предыдущего модуля; опрос производится циклически с проверкой состояния порта в каждом цикле. С дискретными модулями проблем нет (вернее, те что были, решил) - обмен происходит нормально, а вот с модулями аналогового ввода - заминка. Дело в том, что при опросе модуля, у которого на одном из входов произошел обрыв датчика, флаг завершения опроса всех входов не устанавливается в TRUE, и как следствие, происходит зацикливание программы на данном шаге.

    №2: этот же контроллер (ПЛК304) в качестве слейва соединяется у меня со SCADA Movicon 11.1 по Modbus TCP/IP. Связь сконфигурировал, связал - работает: передаются регистры и в одну и в другую сторону; а вот с передачей отдельно битовых сигналов - проблема. Интересует, возможно ли в ПЛК304 обращаться к отдельным битам в составе регистра, и как устроена адресация памяти в контроллере? В теххподдержке г. Харькова мне сказали, что по Ethernet вообще нельзя передавать отдельно биты, а только регистры, но у меня уже есть подобный рабочий проект (с той же SCADA, только на ПЛК110), в котором я с успехом организовал обращение и к битам, и к байтам, и к регистрам в памяти контроллера напрямую (без операций "распаковки" и "упаковки" регистров).

    Заранее благодарю.

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    1 можно самому следить в программе за превышением таймаута и подавать разрешение на следующий шаг, не забывая оповестить о наличии ошибки

    2 работа с битами по любому протоколу модбас имеет свои стандартные функции, у Вас либо эти функции не реализованы либо неправильные настройки в СКАДА-е

  3. #3
    Пользователь
    Регистрация
    07.12.2011
    Адрес
    г. Полтава, Украина
    Сообщений
    18

    По умолчанию

    Кас. 2: стандартные функции discrete input и single coil (не уверен, что правильно назвал) в SCADA присутствуют и мною уже были использованы при соединении с ПЛК110; проблема в том, что обращаюсь к регистрам (при помощи соотв. функции) по адресам, указанным в CoDeSys, - читает/пишет, к битам в составе этих регистров по адресам, указанным в CoDeSys - не читает и не пишет.

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    вроде бы библиотека для modbusTCP относительно молодая для КДС3, может функции не реализованы, попробуйте другим модбас мастером опросить ПЛК

  5. #5
    Пользователь
    Регистрация
    07.12.2011
    Адрес
    г. Полтава, Украина
    Сообщений
    18

    По умолчанию

    Спасибо! Обязательно попробую.

  6. #6
    Пользователь
    Регистрация
    07.12.2011
    Адрес
    г. Полтава, Украина
    Сообщений
    18

    По умолчанию

    Решение нашлось, но не тем способом и не в том месте, где предполагалось . В подключаемой библиотеке OwenModulesLib закралась ошибка: в конце цикла опроса регистров второго канала (marker=1) производится возврат обратно к циклу опроса регистров первого канала (marker=0). По-этому прочитать значения регистров последующих каналов не получалось. Также есть ошибка по поводу установки в TRUE переменной done.
    Поправил, пересохранил, перезалил - всё работает.
    Скорее всего, ФБ модуля МВ110-8А делался по принципу Ctrl+C - Ctrl+V на основе ФБ модуля МВ110-224.2А (в этом модуле все работает отлично, и флаг done устанавливается, даже если на входах обнаружен обрыв датчика). Становится очевидным, что библиотека не тестировалась .

    Библиотека была загружена с сайта ОВЕН. Прошу перепроверить и исправить. Такая неточность стоила мне недели поисков решения проблемы, а заказчику этого не объяснишь.

  7. #7
    Пользователь
    Регистрация
    02.08.2011
    Адрес
    Архангельск
    Сообщений
    13

    Question

    Подскажите, как грамотно организовать опрос модулей Мх110 с ПЛК304 - с лучшим быстродействием и обработкой исключительных ситуаций?

    Разобрался как это в принципе делается воспользовавшись советом из этой темы - с использованием SFC .
    Реализовал - "следить в программе за превышением таймаута и подавать разрешение на следующий шаг, не забывая оповестить о наличии ошибки". Какое время таймаута оптимально?
    Как осуществить "проверку состояния порта в каждом цикле"? Какие еще моменты/ситуации нужно учесть?
    Может вы могли бы выложить вашу реализацию?

    Выкладываю проект для CoDeSys V3.4 SP2 Hotfix 1 - опрос модулей ввода 16ДН, 2АС (2 шт.); вывода 32Р; индикатора СМИ2 (с индикатором пока связь установить не удаётся, пробовал с помощью UniWrite и UniRead). Сейчас всё собрано на стенде - работает.
    ФБ для работы с 32Р в ModulsOwenLib 3.4.0.8 нет - дописывал сам в части простого замыкания релюх.

    Не очень понимаю, какова логика работы со входом Enabl ФБ модулей? Сейчас реализовал подключение к ним, как в примере на таймере TP со временем 50ms. По производительности - время опроса показывает для 16ДН, 32Р - 90ms, для 2АС - 180ms.

    Проект: plc304_mx110_v002_120209.zip
    Настройки СМИ2: SMI2_jpg.zip

  8. #8

    По умолчанию

    to ISh
    в другой теме вы уже узнавали на счет связи со СМи2 и там я Вам выложил пример Вы его видели?
    http://www.owen.ru/forum/showthread....7198#post77198

    опрос модулей: библиотека ModulsOwenLib, если какого-то модуля в ней нет то можно взять любой наиболее близкий и доделать его, библиотека открытая править можно. взять можно отсюда
    она идет вместе с инструкцией.

    Вход Enable запускает работу модуля, т.е. инициирует опрос выбранного модуля 1 раз, реагирует на импульс. Для быстрого опроса нескольких модулей можно собрать вот такую схему (на рисунке).
    Коды исключительных ситуаций блок выводит (у блока дискретного ввода нет исключительных ситуаций), ошибки связи блок так же выводит, так что дальнейшая обработка ложиться на Вас.
    Изображения Изображения
    Последний раз редактировалось Евгений Сергеевич; 24.02.2012 в 11:39.

Похожие темы

  1. RS-485 на ПЛК304
    от Jumo в разделе ПЛК3хх
    Ответов: 13
    Последнее сообщение: 16.10.2013, 10:53
  2. ПЛК304
    от Pixelcom в разделе ПЛК3хх
    Ответов: 3
    Последнее сообщение: 09.09.2011, 16:39
  3. примеры программирования
    от ilf в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 20.07.2010, 15:33
  4. два вопроса плк 63
    от Safron в разделе ПЛК63/73
    Ответов: 3
    Последнее сообщение: 03.07.2010, 13:13
  5. два вопроса по термодатчикам
    от andreich-1 в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 10.05.2007, 13:38

Ваши права

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