1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

ПЛК HCFA опыт разработки и немного эксплуатации

PLC, прочие контроллеры, промышленные компьютеры, операторские панели
Ответить

Автор темы
Sergy6661
read only
read only
Сообщения: 577
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 17 раз
Поблагодарили: 77 раз

ПЛК HCFA опыт разработки и немного эксплуатации

Сообщение Sergy6661 »

Всем привет.
Решил таки поделится опытом разработки приложения на ПЛК китайском под CoDeSys v3.5 фирмы HCFA, а именно HCQ0-1100-D. Позиционируется как т.н PAC контроллер, т.е заточка под управление движением, но набор модулей вполне позволяет организовать управление обычным техпроцессом.
Сначала позитив-
1. Среда разработки;
2. Очень хорошие характеристики, шина EtherCat (В т.ч связь с модулями ввода-вывода), Ethernet порт с поддержкой ModBus TCP Master, Slave, 2 последовательных порта RS232/485 и RS485;
3. Красивые компактные корпуса модулей, втычные клеммы на съемных клеммниках, к каждому модулю в комплекте отверточка :ges_up: ;
4. Плк очень шустрый, у меня одна задача, все вызовы программных компонентов идут из нее, период вызова 5мс, контроль тайминга подтвердил что реальный период вызовов 5мс, длительность цикла при довольно объемном коде не превышает 1мс;
Теперь так себе средненькое:
1. Хотя на момент закупки сентябрь прошлого года в номенклатуре модулей ввода-вывода имелся модуль термосопротивлений, но по факту купить его было не реально (Охрененные сроки поставки), пришлось использовать модуль другого китайсого производителя с коммуникацией по ModBus RTU;
2. Сейчас идет рефакторинг корпусов с клеммами типа PUSH-PULL, с оранжевыми хреновинами под нажатие :o , по ходу решили, что на отверточках разорятся...
Теперь покатил негативчик:
1. Документация. То, что есть это мультфильм, как сейчас помню журнал мурзилка был гораздо содержательнее и объемнее;
2. Ублюдочная организация модбас сервера, вполне может быть это от CoDeSys (немцы модбас ненавидят на уровне подкорки). Поясняю- есть в конфигураторе входные %IW и выходные %QW регистры, так вот %IW по протоколу можно и читать и писать, т.е это Holding Register, %QW по протоколу можно только читать, т.е это Input Register, НО! %IW для приложения доступны только для чтения, а %QW только для записи :ges_down: . Такая модель вполне в стандарте модбаса, только для безмозглых подчиненных- исполнительных механизмов, также подобная модель вполне себе сидит в ПЛК Фаствелл, но те ребятки реализовали возможность инициализации области %IW по событию Before starting, т.е перед стартом программы можно присвоить значения из энергонезависимых переменных, а у китайцев это не работает. Эта, мля, "заковыка" (Тут можно погуглить по словам индусский и китайский код) вынесла мне мозг- как организовать отображение и редактирование энергонезависимых переменных в панели и как организовать алгоритм- кнопочку-тумблер на панели нажал, в ПЛК выпонились действия и ПЛК кнопочку-тумблер отжал (обнулил). Решил это дело через панель, благо на вайнтеке можно "макросить" :coolest: , у меня панель читает области регистров %QW ПЛК и при изменении переписывает в такую-же по адресам область %IW...охрененная заморочка, костыль, но работает, но мне это не нравится. Техподдержка предложила вариант с чтением-записью из разных областей и битовым сигналом подтверждения ввода, по которому ПЛК должен принять введенное значение. Ну я прикинул у меня 400 регистров под энергонезависимые настройки, спасибо за совет бесполезный, я лучше через панель погоняю.
3. Модбас мастер с виду вроде ничего, только вот в одном модуле (имеется в виду ФБ конфигурации) только 10 регистров...ну как бы хрен с вами китайские друзья мне хватает. И все бы ничего, у меня работают оба СОМ порта RS485 на одном 7 ПЧ, на другом 4 устройства разных (Модуль ввода темосопротивлений, парочка расходомеров, клапан с позиционером) и при тестировании по отдельности все очень классно работает, отключаю устройства рандомно, все хорошо ФБ драайвера сигнализирует, включаю устройство связь восстанавливается-красотишша. Но!(прям как у Эллочки Щукиной из 12ти стульев :crazy0to: ) как только соединил обе ветки 485го на столе (про тип кабеля, оконечные резисторы и пр. не спрашивайте, на столе все через пару сварочных электродов работать должно) начались траблы с отваливанием одного из портов, иногда обоих, т.е порт просто перестает слать запросы :o , при этом ФБ драйвера говорит- "чувак, у меня все ништяк, я в поряде" и показывает последние принятые значения...Рестарт СОМ порта помогает ненадолго, отвал в течении 30 сек. Техподдержка посетовала, что я автоматически СОМ порт не рестартую, но признаков то отсутствия связи программных нет.
[+]
СОМ порт это-же не писюн, чтобы его вот просто так передергивать
Ладно продолжим- драйверы конфигурации модбас мастера китайские, попробовал стандартный кодесисный и ... о чудо обмен заработал в течении 30минут,т.к нет лицензии... :coolest:
Начал экспериментировать с настройками, там мутный параметр, обзывается типа(сейчас точно не помню) Frame Timeout или в этом роде по дефолту у китайцев=0мс, стоило изменить его на 20мс все заработало :ext_hooray: , что это за параметр конкретно я понять не могу. И все ничего обмен работает стабильно, проверяли в течении 8ми часов, пока не отключишь одно какое-нибудь устройство...и тогда все тыгдымс порт снова отключается , но при этом в драйверах устройств появляется флаг аварии и можно передергивать СОМ порт...это помогает. :affliction:
Еще есть вопросы по выравниванию и распределению памяти - конструкция с "натягиванием" массива по "АТ" адресации на область регистров модбас слэйва в некоторых областях дает сбои по мере роста кода..., т.е сначала все работает, потом дописал и...все не работает, область модбас равна нулю!!!!
Техподдержка есть и даже отвечает, она вежливая и интеллегентная в отличии от меня, только толку от нее как с козла молока.
С вышеперечисленными траблами по коммуникации помогают справлятся библиотеки от производителя (напр. Овен Communication Lib), но от китайцев этого не дождешся им пофиг.
[+]
И контроллерам китайским я вращение придавал, используя в качестве оси свой детородный орган

se_sib
освоился
освоился
Сообщения: 281
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 5 раз
Поблагодарили: 74 раза

ПЛК HCFA опыт разработки и немного эксплуатации

Сообщение se_sib »

У ПЛК HCQ Modbus сервер организован для доступа к переменным по адресам объявленным через AT.
Так у многих китайских ПЛК на Codesys и не только, например у SE Modicon M2xx так же.
Добавляете в дерево проекта ModbusTcpDevice, на Ethernet адаптер никаких драйверов для работы в качестве сервера Modbus TCP больше добавлять не нужно.
Объявляете переменные через AT %M....
Но тут есть нюанс.
Можно было бы объявить переменные как Retain для создания энергонезависимых переменных-уставок, но у всех ПЛК на Linux с RT Cds которые я встречал, при задание статического адреса через AT переменным Retain, они теряют свои свойства сохранения в ПЗУ при отключении питания. Даже отдел разработки SE не смог за несколько лет это победить на новом Modicon M262,
хотя на M241/251(ОС VxWorks) это прекрасно работало.
Есть вариант работать с переменными Persistent.
Объявляем переменные с статическими адресами через AT как Retain_Persistent.
ATdeclare.JPG
Добавляем в дерево проекта глобальный список PersistentVars и привязываем созданные переменные (правой кнопкой мыши по полю объявления -->Add all instance paths)
PersistentVars.JPG
Теперь переменные доступны по Modbus и сохраняют свои значения при потери питания.

А вот с корявым драйвером-конфигуратором Modbus RTU Master от Hcfa действительно беда.
Был бы сервиспак Cds не ниже SP16, можно было бы использовать штатную библиотеку от 3S Software - ModbusFB для организации обмена, в ней довольно удобные и понятные ФБ.
В прошлом году я им говорил про необходимость повышения SP и покупку лицензии штатного драйвера Modbus RTU Master, обещали реализовать.

Есть еще вариант через ФБ в библиотеке Oscat Network, но я не пробовал.

Доступные лицензии Cds на HCQ0
DeviceReaderHCQ0.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

I_m
освоился
освоился
Сообщения: 257
Зарегистрирован: 28 сен 2022, 15:26
Имя: Андрей
Благодарил (а): 4 раза
Поблагодарили: 39 раз

ПЛК HCFA опыт разработки и немного эксплуатации

Сообщение I_m »

Sergy6661 писал(а): 15 янв 2024, 22:27 Начал экспериментировать с настройками, там мутный параметр, обзывается типа(сейчас точно не помню) Frame Timeout или в этом роде по дефолту у китайцев=0мс
Возможно это то, что у других китайцев называется Silent time, т.е. задержка перед посылкой очередного запроса в последовательный порт. Даёт больше времени медленным устройствам на обработку запросов.

Автор темы
Sergy6661
read only
read only
Сообщения: 577
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 17 раз
Поблагодарили: 77 раз

ПЛК HCFA опыт разработки и немного эксплуатации

Сообщение Sergy6661 »

se_sib писал(а): 15 янв 2024, 23:49 Объявляете переменные через AT %M....
Это что, на HCQ как у шнайдеровских модбас сервер по умолчанию к %MW привязан???
Вот не проверял, а это реально сильно бы помогло.
Х.З может в китайских школах общеобразовательных юных китайчат на уроках информатики учат работать с ПЛК HCQ и прочими и тогда понятно, какая нах документация, руководства программиста? Мы это в школе проходим.

se_sib
освоился
освоился
Сообщения: 281
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 5 раз
Поблагодарили: 74 раза

ПЛК HCFA опыт разработки и немного эксплуатации

Сообщение se_sib »

Sergy6661 писал(а): 16 янв 2024, 08:35 Это что, на HCQ как у шнайдеровских модбас сервер по умолчанию к %MW привязан???
Вот не проверял, а это реально сильно бы помогло.
Х.З может в китайских школах общеобразовательных юных китайчат на уроках информатики учат работать с ПЛК HCQ и прочими и тогда понятно, какая нах документация, руководства программиста? Мы это в школе проходим.
Да, так же как у SE.
У Hcfa есть учебный портал на китайском языке http://class.hcfa.cn/, пользы не много, но есть несколько видеороликов и инструкций по работе с их ПЛК. Только сейчас доступ к ним закрыли, требуют регистрацию на сайте чтобы попасть в раздел.
HCQ.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
Sergy6661
read only
read only
Сообщения: 577
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 17 раз
Поблагодарили: 77 раз

ПЛК HCFA опыт разработки и немного эксплуатации

Сообщение Sergy6661 »

Sergy6661 писал(а): 16 янв 2024, 08:35 Это что, на HCQ как у шнайдеровских модбас сервер по умолчанию к %MW привязан???
se_sib писал(а): 16 янв 2024, 09:05 Да, так же как у SE.
Да! И это реально ситуацию улучшает. Переделал проект, все работает, красотишша.
Ответить

Вернуться в «Средний уровень автоматизации (управляющий)»