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

Тема: MasterSCADA 4D и OPS UA

  1. #1

    По умолчанию MasterSCADA 4D и OPS UA

    Добрый день!
    По великой нужде столкнулся с MS4D, не буду описывать всего моего удивления в этом чуде отечественного полета мысли разработчиков.
    Проблема или недопонимание работы ПО в следующем:
    В OPС сервере на ПЛК есть переменные in/out типа BOOL, накидал простую библиотеку в которой отображается состояние переменных и изменяется их состояние. Библиотечные переменные к которым подписываются переменные из OPС ставил тип BOOL и менял на SYSTEM_BOOL_PARAM. Если перетягиваешь переменную как выход то изменяет ее в OPС, если как вход то читает. Но нифига не работает одновременно, как выйти из этого порочного круга.
    Последний раз редактировалось Lisov-R; 03.07.2023 в 15:16.

  2. #2
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    А чего не описать полет мысли разработчиков?!
    Будет интересно почитать...

  3. #3

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    А чего не описать полет мысли разработчиков?!
    Будет интересно почитать...
    Ну для меня не понятно для чего сделано что перетаскивание переменной это единственный вариант для прописывания переменной в свойствах или функциях. Это хорошо когда ты один насосик как в видосиках делаешь, а если у тебя более сотни модулей и несколько тысяч переменных. Создал библиотеку в которой 18 переменных, к ним нужно перетащить значение с протокола которых 784, и еще по два раза так как входное и выходное это разные вещи, итого получаем что в долбаном интерфейсе через километр прокрутки я ДОЛЖЕН протащить 1568 раз. В свойствах примитивов или иных объектов нельзя прописать зависимость от нескольких переменных, как они позиционируют что перетащил переменную и прописал на нее действия и это избавляет от скриптов, так это же и рождает доп скрипты. Переменная не может быть как входной так и выходной как в нормальной ST коде. Нафига нужно входные и выходные переменные, можно же работать как у ВСЕХ просто с переменной. Даже в CodeSys когда создаеш ФБ то указываеш переменные in, out или inout и это идеально работает. Про графику я вообще молчу, труб нарисовали каких хочешь, а с кнопками повозись сам, скопировать свойства я не нашел или нет. У меня на данный момент 784 переменных с OPC сервера на ПЛК, чтоб прочитать переменные тебе нужен рабочий ПЛК с залитой программой и это на стадии разработки. Импорта/экспорта переменных НЕТ, редактирование и добавление не возможно, но если очень хочется то можно но это 3.14здец как (я сам костыли уже придумал). Решил тут использовать в графике "панель вкладок" это жуть. Смена расположения кнопок вкладок не как не отражается в среде разработки, но хоть реализуется в RT. Соответствено получаешь мучение при компановке окна. Размер вкладок в "панель вкладок" бывает что вообще не изменяется, от чего глюк зависит не понятно, в разработке прописал 1000х950 в RT отображается кусок окна 400х200. Свойство сохранять пропорции и тип координат тоже загадочная вещь, то работает отлично, но при "ретроградном меркурии" Х пойми куда все девается. Статус бар в шаблоне экрана я так и не впихнул, ну как не впихнул, опять же в разработке он идеально смотрится, в RT его тупо НЕТ. И это я только начал создавать проект в этом чуде, что будет далее. Еще не дошел до журнала действий оператора по аналогии как аварии чтоб можно было отобразить, но говорят не возможно. Предстоит как то придумать создание маршрутов (последовательность включения и отключения агрегатов) , боюсь что это будет страшно. Я даже еще не осилил библиотеку управлением агрегата, ну не хочется мне прописывать две переменных на одну из ОРС сервера.
    Мне кажется что разработчики ни когда даже не пытались посмотреть что делают другие люди. Ну посмотрите на Шнайдер и Сименс, ну хотябы на CodeSys у которого визуализация можно сказать ка приятное дополнение.

  4. #4

    По умолчанию

    У меня есть переменная в ПЛК Run читается и пишется через OPC UA на ПЛК. Перемененная Run управляет запуском агрегата, он в логике ПЛК может сброситься в False по аварии. Я смерился что для чтения и записи в созданном объекте нужны разные переменные, создал Run_In и Run_Out. Создал две кнопки СТАРТ и СТОП с событием установить параметр Run_Out в True и False сответственно. Все не чего, но если был Run_Out:=True который записался в ПЛК в Run и по какой то причине сброшен в False то переменная в скаде Run_Out так и стается True. Для того чтоб запустить заново нужно клацнуть вначале по кнопке СТОП и затем СТАРТ чтобы запустить заново. Я решил как то сделать обмен состоянием от Run_In к Run_Out, следующим образомБезымянный.jpg . Переменная Run_Out меняет свое состояние при изменении Run_In.
    И как мне казалось что везде работающая развязка при помощи импульса по фронту должна работать и переменная Run_Out спокойно должна менять состояние по нажатию кнопок, я ошибался все это не для MS4D.
    Вопрос к знатокам где я косячу, как мне победить этот порочный круг с записью и чтением переменной.
    Последний раз редактировалось Lisov-R; 03.07.2023 в 22:58.

  5. #5

    По умолчанию

    Я не отрицаю что мало чего знаю в MS4D, столкнулся первый раз. Мои действия наверное и не правильные, но я другого решения как прикрутить костыли я не нашел.
    Еще раз, переменная с ОРС сервера на ПЛК в MS4D попадает как вход и выход (как две по факту переменных). Мне нужно в MS4D отслеживать ее состояние и изменять ее, но также она может менять значение логикой заложенной в ПЛК.
    Если в скаде было нажато ВКЛ , а ПЛК сбросило зачение то в скаде нужно было нажать кнопку ВЫКЛ, а потом ВКЛ чтоб произошла смена значения и записалось в ПЛК (постоянную запись нельзя ставить ибо получаем вообще не управляемую вещь). Пришел к тому что нужно передать состояние входа переменной на выход. Реализовал при помощи тригера и как мне казалось могу уже упралять значением с кнопок при нажатии мыши командой установить параметр. Не заработало, не хотела менять значение, не знаю по какой логике. В итоге завел еще как в MS4D называют параметр (по мне это переменная) на включение и выключение. В кнопках прописал на нажатие мыши выдать импульс. получил такие костыли
    2.jpg
    Все заработало как положено. Мне интересно почему переменная in/out идет как две разные переменные (в скадах где я работал такого не было), почему переменная в программе не меняется с кнопок из окна, и сто за хрень с языком LD (бывает и хуже) почему нельзя работать с входами и выходами ФБ как у большинства, контакт и катушку можно сразу поставить отрицание, Set или Reset.
    1.jpg

  6. #6
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    К сожалению, нет возможности детально разбираться во всех Ваших замечаниях.
    Скажу лишь, что, как мне кажется, большинство Ваших проблем от того, что Вы не чувствуете пока концепцию работы в Мастерскада.
    Предложу методические материалы собственного авторства. Хотя, далеко не на все вопросы (или даже только на малую часть) там есть ответы.
    Искренне надеюсь, что они будут полезны: https://cloud.mail.ru/public/rjK5/W6vxijZZz
    Последний раз редактировалось Спорягин Кирилл; 06.07.2023 в 09:14.

Похожие темы

  1. MasterScada и S7-300
    от Viktor40 в разделе Master SCADA 3
    Ответов: 15
    Последнее сообщение: 23.04.2019, 14:45
  2. MasterSCADA 4D и ST
    от Эдуард_Н в разделе Master SCADA 3
    Ответов: 8
    Последнее сообщение: 18.05.2017, 18:19
  3. конвертация проекта из Masterscada 3.5 в Masterscada 3.4
    от Сергей_SPB в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 01.04.2013, 17:56
  4. MasterSCADA и Си8
    от [Ap][uTekToP] в разделе Сервисное ПО
    Ответов: 7
    Последнее сообщение: 28.09.2009, 16:49
  5. MasterSCADA и ШД
    от sgm в разделе Трёп (Курилка)
    Ответов: 6
    Последнее сообщение: 05.08.2009, 06:33

Ваши права

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