Помогите разобраться с контроллером Beckhoff

Стартовая страница Форумы Взаимодействие с устройствами Modbus Помогите разобраться с контроллером Beckhoff

Просмотр 15 сообщений - с 61 по 75 (из 87 всего)
  • Автор
    Сообщения
  • #19671
    sakhalin_Cat
    Участник

    Причем обратите внимание на то, что у меня не возникло проблем собрать маленький «завод» на 1,5 гектара с кучей оборудования на контроллерах бекофф с кучей частотников, системой СКУД, полной автоматизацией предприятия, кучей оптических линий связи, коммутаторов, серверов и прочей машинерии. Собрать ЧПУ станки и интегрировать их в общую систему итд итп. Всё в одно лицо.
    .
    Вот одно из моих изделий где в одно целое связывается пневматика, гидравлика, цифровое управление сервоприводами, ПО и софт разных производителей итд итп…
    Это как пример показывающий мой ориентировочный уровень знаний. И я 4-ре дня делаю кнопку чтобы послать бит в контроллер…
    Поверьте я в шоке…
    .




    #19673
    sakhalin_Cat
    Участник




    #19674
    sakhalin_Cat
    Участник






    #19675
    sakhalin_Cat
    Участник

    Еще раз повторюсь я всё это написал не для того чтобы сказать «Фи» системе и автору и не для того чтобы выпендрится фоточками.
    .
    А к тому чтобы было понятно, что этому прекрасному продукту с именем «RapidScada» требуются хотя-бы минимальные допилы напильником в юзер интерфейсе.
    .
    Пишу я как новый пользователь продукта, который имея богатый опыт работы сел и попытался освоить этот продукт. Сел и залип как баран, так как простейшие вещи еще в доках есть, а что-то более сложное это полный даун.
    .
    Продукт чрезвычайно запутан невнятными понятиями типа линия, кп, итд итп. Например в «Каналах управления» есть два столбика — «Номер» и «Номер команды», вот как человеку понять что «номер команды» относится к команде «драйвера линии коммуникатора» а не к команде интерфейса или команде входящей линии???
    .
    Даже мне человеку с огромным опытом работы с различными программно-аппаратными комплексами пришлось провести целое расследование с кучей бумажек и подстановок разных значений в разные пункты чтобы понять как всё это взаимосвязано. Но больше всего мешают пониманию системы отсутствие внятной маркировки понятий как я и писал выше. Нужны суффиксы, просто набор цифр сводит с ума при большом обьеме данных. Это самая огромная заморочка с которой я столкнулся — цифры, цифры и цифры во всех колонках, причем непонятно откуда и к чему относящиеся.
    Сейчас, когда основной базис программы освоен стало гораздо проще, но начало использования это страшный сон. Но даже сейчас приходится тупить чтобы понять что и какая цифра означает и к чему она имеет отношение.

    • Этот ответ был изменен 6 месяцев назад от sakhalin_Cat.
    • Этот ответ был изменен 6 месяцев назад от sakhalin_Cat.
    #19678
    Romiros
    Участник

    Вы не первый кто переживает данный дискомфорт. На самом деле большая часть претензий это с непревычки. У каждой системы свой подход. Документация для старта вполне достаточная, просто нужно читать внимательно несколько раз. Поверьте я тоже через это проходил. Матюкаешься что ничего непонятно, потом ещё раз внимательно прочитаешь и оказывается всё есть. Конечно присутствуют недокументированные фишки, о которых можно узнать только на форуме.
    У меня на работе используется крутая немецкая система, в которой без обучения даже стартануть невозможно. Вот там действительно разрыв мозга. Зато когда освоил — понимаешь что все очень продуманно. Короче по уровню сложности входа RapidScada очень простая на самом деле.
    Что касается цифровых каналов, то это уже много раз обсуждалась и будет решено в 6 версии. Система растет и развивается и большинство озвученных Вами проблем уже решается. Ждём с нетерпением 6-ю версию.
    P.S. Ваша работа кстати впечатляет. Очень круто.

    #19681
    manjey73
    Участник

    @sakhalin_Cat 🙂 я сперва, прочитав ваш опус начал вскипать, потом вспомнил себя..

    @Romiros
    прав, система достаточно проста к освоению, а почему цифры? так БД построена и думаю тут не обошлось от реализации системы, чтобы она работала на Linux.

    А теперь давайте начнем сначала, я вас просил определиться с ПЛК, как вы в него можете записать свой БИТ ? только словом, или он все таки может записываться и при помощи функции запись Coil ? это важно. В CodSys, даже если явно не указаны биты в Word, который вы отправляете в ПЛК возможно есть возможность посчитать какой адрес будет у конкретного бита данного слова как для записи, так и для чтения.
    Это должно быть в документации на ПЛК и в CodeSys. (Просто я не знаю Beckhoff, чтобы это утверждать, но на Овен вроде так было можно).
    Для контроля вы считываете СЛОВО(Word), для передачи команд бит (Coil)

    Если все-таки только Word можно записать, у вас при смене битов по команде SetBit слово меняется ?

    Сделайте дополнительный канал управления. Укажите его как Стандартный.
    Поставьте галочку Использовать формулу и пропишите в формуле Val(Номер канала вашего Word)
    Посмотрите по логам, что-то отправится ?

    з.ы. сам иногда теряюсь в формулах, так как одно дело написать какую-то функцию и другое понять как это сработает именно в каналах Scada

    Можете для прикола поставить MasterScada4D — меня хватило меньше чем на день, чтобы ее снести 🙂 Да и много таких, где без бутылки даже разбираться не захочешь.

    • Этот ответ был изменен 6 месяцев назад от manjey73.
    #19683
    manjey73
    Участник

    Да, раз речь идет о мнемосхемах, поставьте дополнительные компоненты схем. Ой, опять платно. Но ничего, простая кнопка есть и в бесплатном варианте.
    И еще есть просто статический или динамический рисунок, где в свойствах можно отправить команду сразу, а там уже формула.

    #19686
    sakhalin_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=5

    #19687
    manjey73
    Участник

    Так если вам в ПЛК не надо отправлять, то зачем вам еще что-то делать с битом, всякие вспышки там с применением Tp и прочее? Вот опять не пойму, то вам надо, то

    Я не хочу принципиально трогать прямую запись в регистры PLC, так как на них свой софт крутится. Пока пишем только в память.

    #19691
    sakhalin_Cat
    Участник

    Так если вам в ПЛК не надо отправлять, то зачем вам еще что-то делать с битом, всякие вспышки там с применением Tp и прочее? Вот опять не пойму, то вам надо, то

    В PLC мне отправлять нужно, но только в область меркерной памяти. Это я и делаю, я в эту область пишу и там же читаю. Напрямую в входы писать нельзя, так как программа на PLC сразу потребует много взаимоисключающей логики. Меркерная память это общая область программы PLC и шины MODBUS к которой и тот и другой имеет доступ и на запись и на чтение. Поэтому мы в меркерной памяти ставим и снимаем флаг в виде бита который прога PLC видит и на основании появления и исчезания данных флагов отрабатывает необходимые действия, так-же прога работающая на PLC отчитывается о своих действиях ставя и снимая флаги в этой области памяти, а мы эти флаги видим из SCADA системы и тоже производим на основании появления\снятия данных флагов какие-то манипуляции лампочками и кнопками.

    #19696
    sakhalin_Cat
    Участник

    А то что хотел написать забыл.
    Так вот, чтобы не плодить лишние блоки в PLC мне для обработки некоторых событий нужно кратковременно установить значение 1 в определенные биты меркерной памяти.
    Если я просто из Скады туда поставлю 1, то скада будет держать этот бит в состоянии 1 постоянно и сбросить его из программы PLC я не могу так как скада его сразу вернет обратно в состояние которое её кажется нужным. Писать обработку с двух сторон в корне неправильно, так как во первых это добавляет кучу лишних строк, во вторых занимает лишние биты в словах а в третих снижает надежность системы.
    Поэтому мне и нужно «мигнуть битом» кратковременно прописать туда «1» чтобы при рабочем цикле программа ПЛК увидела этот «флаг» и триггер перевелся в нужное мне состояние. Причем длительность «горения» большой роли не играет так как триггеры и стоят для «одноразовости» комманды чтобы не получить «дребезг контактов» или не увалится в циклическую отработку при постоянной «1».

    #19741
    sakhalin_Cat
    Участник

    Помогите пожалуйста с мигалкой.
    Новое слово в технике «Битовая мигалка» 🙂 🙂

    #19743
    manjey73
    Участник

    Если я просто из Скады туда поставлю 1, то скада будет держать этот бит в состоянии 1 постоянно и сбросить его из программы PLC я не могу так как скада его сразу вернет обратно в состояние которое её кажется нужным.

    вот с какого вы так думаете? Вы из Scada посылаете 1 только один раз, ПЛК его принял, обработал, сбросил в 0, Scada это увидела и отобразила 0

    Это вообще наиболее правильный подход. Если вы руками пишете из Scada 1, а по опросу после команды или согласно периоду опроса не получаете в ответ 0, значит программа ПЛК работает неправильно.

    И вы не слушаете что я вам говорю, посмотрите в справке CodeSys и собственно ПЛК, можно ли там рассчитать адрес нужного бита переменной, представленной в области памяти Modbus как слово?

    Например адрес регистра слова 0, адрес 6-ого бита 6 или 1006 и так далее. На Овен можно было посчитать и соответственно записывать строго определенный бит нужного слова но командой запись Coil

    #19744
    manjey73
    Участник

    Вы просто не понимаете того, что Scada не пишет в ПЛК команды постоянно, а однократно, если ее не заставить это делать например Модулем автоуправления.
    Самостоятельно от вашего надатия на команду она делает это ОДИН раз, пока вы не пошлете команду второй, третий и так далее раз.

    Я так на реле Овен ПР200 делал, Scada пишет в ПР переменную, ПР выполняет программу и сбрасывает переменную. А будет это целый регистр или один бит это уже не важно. И это правильный подход. А вот когда есть готовая программа ПЛК но не исходников, вот тогда и надо мучаться, послать одну команду, а Scada через время уже самостоятельно должна послать противоположную команду да и через определенное время.

    • Этот ответ был изменен 6 месяцев назад от manjey73.
    #19746
    manjey73
    Участник

    У вас есть канал — битовая маска, представленная Word из ПЛК
    Настройте на этот канал управление, тип Станартная
    В формуле укажите Val(Номер канала слова Word)

    Измените любой бит командами на каналах GetBit, где у вас в каналах управления стоит SetBit — вы писали что Word у вас меняется, и кстати не должен, либо до следующего опроса ПЛК должен восстановиться

    А потом отправьте команду из канала управления Слова

    Шаблон должен быть правильно настроен, в том числе и порядок байт, который должен принять ПЛК

    • Этот ответ был изменен 6 месяцев назад от manjey73.
Просмотр 15 сообщений - с 61 по 75 (из 87 всего)
  • Вы должны авторизироваться для ответа в этой теме.