Стартовая страница › Форумы › Взаимодействие с устройствами › Modbus › Помогите разобраться с контроллером Beckhoff
- В этой теме 89 ответов, 4 участника, последнее обновление 1 год, 10 месяцев назад сделано sakhalin_Cat.
-
АвторСообщения
-
28.05.2021 в 18:03 #19671sakhalin_CatУчастник
Причем обратите внимание на то, что у меня не возникло проблем собрать маленький «завод» на 1,5 гектара с кучей оборудования на контроллерах бекофф с кучей частотников, системой СКУД, полной автоматизацией предприятия, кучей оптических линий связи, коммутаторов, серверов и прочей машинерии. Собрать ЧПУ станки и интегрировать их в общую систему итд итп. Всё в одно лицо.
.
Вот одно из моих изделий где в одно целое связывается пневматика, гидравлика, цифровое управление сервоприводами, ПО и софт разных производителей итд итп…
Это как пример показывающий мой ориентировочный уровень знаний. И я 4-ре дня делаю кнопку чтобы послать бит в контроллер…
Поверьте я в шоке…
.
28.05.2021 в 18:04 #19673sakhalin_CatУчастник
28.05.2021 в 18:04 #19674sakhalin_CatУчастник
28.05.2021 в 18:26 #19675sakhalin_CatУчастникЕще раз повторюсь я всё это написал не для того чтобы сказать «Фи» системе и автору и не для того чтобы выпендрится фоточками.
.
А к тому чтобы было понятно, что этому прекрасному продукту с именем «RapidScada» требуются хотя-бы минимальные допилы напильником в юзер интерфейсе.
.
Пишу я как новый пользователь продукта, который имея богатый опыт работы сел и попытался освоить этот продукт. Сел и залип как баран, так как простейшие вещи еще в доках есть, а что-то более сложное это полный даун.
.
Продукт чрезвычайно запутан невнятными понятиями типа линия, кп, итд итп. Например в «Каналах управления» есть два столбика — «Номер» и «Номер команды», вот как человеку понять что «номер команды» относится к команде «драйвера линии коммуникатора» а не к команде интерфейса или команде входящей линии???
.
Даже мне человеку с огромным опытом работы с различными программно-аппаратными комплексами пришлось провести целое расследование с кучей бумажек и подстановок разных значений в разные пункты чтобы понять как всё это взаимосвязано. Но больше всего мешают пониманию системы отсутствие внятной маркировки понятий как я и писал выше. Нужны суффиксы, просто набор цифр сводит с ума при большом обьеме данных. Это самая огромная заморочка с которой я столкнулся — цифры, цифры и цифры во всех колонках, причем непонятно откуда и к чему относящиеся.
Сейчас, когда основной базис программы освоен стало гораздо проще, но начало использования это страшный сон. Но даже сейчас приходится тупить чтобы понять что и какая цифра означает и к чему она имеет отношение.- Этот ответ был изменен 2 года, 10 месяцев назад от sakhalin_Cat.
- Этот ответ был изменен 2 года, 10 месяцев назад от sakhalin_Cat.
28.05.2021 в 19:27 #19678RomirosУчастникВы не первый кто переживает данный дискомфорт. На самом деле большая часть претензий это с непревычки. У каждой системы свой подход. Документация для старта вполне достаточная, просто нужно читать внимательно несколько раз. Поверьте я тоже через это проходил. Матюкаешься что ничего непонятно, потом ещё раз внимательно прочитаешь и оказывается всё есть. Конечно присутствуют недокументированные фишки, о которых можно узнать только на форуме.
У меня на работе используется крутая немецкая система, в которой без обучения даже стартануть невозможно. Вот там действительно разрыв мозга. Зато когда освоил — понимаешь что все очень продуманно. Короче по уровню сложности входа RapidScada очень простая на самом деле.
Что касается цифровых каналов, то это уже много раз обсуждалась и будет решено в 6 версии. Система растет и развивается и большинство озвученных Вами проблем уже решается. Ждём с нетерпением 6-ю версию.
P.S. Ваша работа кстати впечатляет. Очень круто.28.05.2021 в 20:04 #19681manjey73Участник@sakhalin_Cat 🙂 я сперва, прочитав ваш опус начал вскипать, потом вспомнил себя..
@Romiros прав, система достаточно проста к освоению, а почему цифры? так БД построена и думаю тут не обошлось от реализации системы, чтобы она работала на Linux.А теперь давайте начнем сначала, я вас просил определиться с ПЛК, как вы в него можете записать свой БИТ ? только словом, или он все таки может записываться и при помощи функции запись Coil ? это важно. В CodSys, даже если явно не указаны биты в Word, который вы отправляете в ПЛК возможно есть возможность посчитать какой адрес будет у конкретного бита данного слова как для записи, так и для чтения.
Это должно быть в документации на ПЛК и в CodeSys. (Просто я не знаю Beckhoff, чтобы это утверждать, но на Овен вроде так было можно).
Для контроля вы считываете СЛОВО(Word), для передачи команд бит (Coil)Если все-таки только Word можно записать, у вас при смене битов по команде SetBit слово меняется ?
Сделайте дополнительный канал управления. Укажите его как Стандартный.
Поставьте галочку Использовать формулу и пропишите в формуле Val(Номер канала вашего Word)
Посмотрите по логам, что-то отправится ?з.ы. сам иногда теряюсь в формулах, так как одно дело написать какую-то функцию и другое понять как это сработает именно в каналах Scada
Можете для прикола поставить MasterScada4D — меня хватило меньше чем на день, чтобы ее снести 🙂 Да и много таких, где без бутылки даже разбираться не захочешь.
- Этот ответ был изменен 2 года, 10 месяцев назад от manjey73.
28.05.2021 в 20:08 #19683manjey73УчастникДа, раз речь идет о мнемосхемах, поставьте дополнительные компоненты схем. Ой, опять платно. Но ничего, простая кнопка есть и в бесплатном варианте.
И еще есть просто статический или динамический рисунок, где в свойствах можно отправить команду сразу, а там уже формула.28.05.2021 в 21:23 #19686sakhalin_CatУчастник
@sakhalin_Cat 🙂 я сперва, прочитав ваш опус начал вскипать, потом вспомнил себя..
@Romiros прав, система достаточно проста к освоению, а почему цифры? так БД построена и думаю тут не обошлось от реализации системы, чтобы она работала на Linux.Сама система прекрасна, вроде привыкаю потихой. Надо будет потом опыт свой в ФАК обобщить как время будет.
Да, раз речь идет о мнемосхемах, поставьте дополнительные компоненты схем. Ой, опять платно. Но ничего, простая кнопка есть и в бесплатном варианте.
А теперь давайте начнем сначала, я вас просил определиться с ПЛК, как вы в него можете записать свой БИТ ?
Я не хочу принципиально трогать прямую запись в регистры PLC, так как на них свой софт крутится. Пока пишем только в память.
Если все-таки только Word можно записать, у вас при смене битов по команде SetBit слово меняется ?
Да всё нормально работает, меняется любой бит в слове отдельно не затрагивая остальные.
Да тут дело не в платно-бесплатно, просто не вижу применения пока.
.
Помогите мне с формулой пожалуйста в теме https://forum.rapidscada.ru/?topic=%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81-%D0%BF%D0%BE-2000-%D0%BF%D0%BF&paged=528.05.2021 в 22:26 #19687manjey73УчастникТак если вам в ПЛК не надо отправлять, то зачем вам еще что-то делать с битом, всякие вспышки там с применением Tp и прочее? Вот опять не пойму, то вам надо, то
Я не хочу принципиально трогать прямую запись в регистры PLC, так как на них свой софт крутится. Пока пишем только в память.
29.05.2021 в 02:33 #19691sakhalin_CatУчастникТак если вам в ПЛК не надо отправлять, то зачем вам еще что-то делать с битом, всякие вспышки там с применением Tp и прочее? Вот опять не пойму, то вам надо, то
В PLC мне отправлять нужно, но только в область меркерной памяти. Это я и делаю, я в эту область пишу и там же читаю. Напрямую в входы писать нельзя, так как программа на PLC сразу потребует много взаимоисключающей логики. Меркерная память это общая область программы PLC и шины MODBUS к которой и тот и другой имеет доступ и на запись и на чтение. Поэтому мы в меркерной памяти ставим и снимаем флаг в виде бита который прога PLC видит и на основании появления и исчезания данных флагов отрабатывает необходимые действия, так-же прога работающая на PLC отчитывается о своих действиях ставя и снимая флаги в этой области памяти, а мы эти флаги видим из SCADA системы и тоже производим на основании появления\снятия данных флагов какие-то манипуляции лампочками и кнопками.
29.05.2021 в 03:38 #19696sakhalin_CatУчастникА то что хотел написать забыл.
Так вот, чтобы не плодить лишние блоки в PLC мне для обработки некоторых событий нужно кратковременно установить значение 1 в определенные биты меркерной памяти.
Если я просто из Скады туда поставлю 1, то скада будет держать этот бит в состоянии 1 постоянно и сбросить его из программы PLC я не могу так как скада его сразу вернет обратно в состояние которое её кажется нужным. Писать обработку с двух сторон в корне неправильно, так как во первых это добавляет кучу лишних строк, во вторых занимает лишние биты в словах а в третих снижает надежность системы.
Поэтому мне и нужно «мигнуть битом» кратковременно прописать туда «1» чтобы при рабочем цикле программа ПЛК увидела этот «флаг» и триггер перевелся в нужное мне состояние. Причем длительность «горения» большой роли не играет так как триггеры и стоят для «одноразовости» комманды чтобы не получить «дребезг контактов» или не увалится в циклическую отработку при постоянной «1».29.05.2021 в 12:05 #19741sakhalin_CatУчастникПомогите пожалуйста с мигалкой.
Новое слово в технике «Битовая мигалка» 🙂 🙂29.05.2021 в 13:51 #19743manjey73УчастникЕсли я просто из Скады туда поставлю 1, то скада будет держать этот бит в состоянии 1 постоянно и сбросить его из программы PLC я не могу так как скада его сразу вернет обратно в состояние которое её кажется нужным.
вот с какого вы так думаете? Вы из Scada посылаете 1 только один раз, ПЛК его принял, обработал, сбросил в 0, Scada это увидела и отобразила 0
Это вообще наиболее правильный подход. Если вы руками пишете из Scada 1, а по опросу после команды или согласно периоду опроса не получаете в ответ 0, значит программа ПЛК работает неправильно.
И вы не слушаете что я вам говорю, посмотрите в справке CodeSys и собственно ПЛК, можно ли там рассчитать адрес нужного бита переменной, представленной в области памяти Modbus как слово?
Например адрес регистра слова 0, адрес 6-ого бита 6 или 1006 и так далее. На Овен можно было посчитать и соответственно записывать строго определенный бит нужного слова но командой запись Coil
29.05.2021 в 13:53 #19744manjey73УчастникВы просто не понимаете того, что Scada не пишет в ПЛК команды постоянно, а однократно, если ее не заставить это делать например Модулем автоуправления.
Самостоятельно от вашего надатия на команду она делает это ОДИН раз, пока вы не пошлете команду второй, третий и так далее раз.Я так на реле Овен ПР200 делал, Scada пишет в ПР переменную, ПР выполняет программу и сбрасывает переменную. А будет это целый регистр или один бит это уже не важно. И это правильный подход. А вот когда есть готовая программа ПЛК но не исходников, вот тогда и надо мучаться, послать одну команду, а Scada через время уже самостоятельно должна послать противоположную команду да и через определенное время.
- Этот ответ был изменен 2 года, 10 месяцев назад от manjey73.
29.05.2021 в 14:00 #19746manjey73УчастникУ вас есть канал — битовая маска, представленная Word из ПЛК
Настройте на этот канал управление, тип Станартная
В формуле укажите Val(Номер канала слова Word)Измените любой бит командами на каналах GetBit, где у вас в каналах управления стоит SetBit — вы писали что Word у вас меняется, и кстати не должен, либо до следующего опроса ПЛК должен восстановиться
А потом отправьте команду из канала управления Слова
Шаблон должен быть правильно настроен, в том числе и порядок байт, который должен принять ПЛК
- Этот ответ был изменен 2 года, 10 месяцев назад от manjey73.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.