Страница 64 из 131 ПерваяПервая ... 1454626364656674114 ... ПоследняяПоследняя
Показано с 631 по 640 из 1305

Тема: Вопросы по MasterSCADA 4D

  1. #631

    По умолчанию

    Цитата Сообщение от Minarion Посмотреть сообщение
    Здравствуйте!
    Подскажите как присвоить NULL переменной, если другая переменная тоже NULL.

    Как я написал: IF var1 = NULL then var2:= NULL END_IF;

    Однако значение var2 не становится NULL.
    Создать переменную без начального значения и по условию присваивать ее другой переменной.

  2. #632

    По умолчанию

    Подскажите как в мастер скаде 4D реализовать кнопку с таймером, т.е. при нажатии на кнопку на мнемосхеме она вдавливается и параметр присваивается ВКЛ, а через 2 секунды параметр стал ВЫКЛ и кнопка на мнемосхеме отжалась?

  3. #633

    По умолчанию

    Цитата Сообщение от alex13 Посмотреть сообщение
    Подскажите как в мастер скаде 4D реализовать кнопку с таймером, т.е. при нажатии на кнопку на мнемосхеме она вдавливается и параметр присваивается ВКЛ, а через 2 секунды параметр стал ВЫКЛ и кнопка на мнемосхеме отжалась?
    Кнопку привязать к логической переменной, в программе реализовать задержку выключения через ФБ TOF и сброс логической переменной этим же блоком TOF.

  4. #634

    По умолчанию

    Здравствуйте, смотрю урок 3 Быстрый старт, у меня при перетаскивании из вкладки объекты во вкладку Бибдтотеки локальные содержимое окон не сохраняется - и соответственно потом все содержимое удаляется в источнике. В чем может быть проблема? И еще вопрос - В среде проектирования все работает сигналы на контроллер проходят, но как только запускаю проект через RT, клиент перестает общается с OCP, запускаю среду проеэтирование там тоже перестает и пишит при компеляции версия исполнительного устройства устарела.
    Последний раз редактировалось Dzherenov; 15.07.2022 в 15:54.

  5. #635

    По умолчанию

    Вопрос про конвертацию.
    С прибора идут данные INT, в скаде я их принимаю, но мне нужно на окно вытащить уже REAL с 2 знаками после запятой (например, 1267 должно стать 12,67).
    Попробовал создать параметр LREAL и задать формат {f2}, но получил ту же самую целую часть с двумя нулями после запятой.
    Можно ли сделать быструю конвертацию, не прибегая к программным блокам (FBD, ST и тп)?

  6. #636

    По умолчанию

    Цитата Сообщение от Bigcrash Посмотреть сообщение
    Вопрос про конвертацию.
    С прибора идут данные INT, в скаде я их принимаю, но мне нужно на окно вытащить уже REAL с 2 знаками после запятой (например, 1267 должно стать 12,67).
    Попробовал создать параметр LREAL и задать формат {f2}, но получил ту же самую целую часть с двумя нулями после запятой.
    Можно ли сделать быструю конвертацию, не прибегая к программным блокам (FBD, ST и тп)?
    Да можно, см. скриншот
    Изображения Изображения

  7. #637
    Пользователь
    Регистрация
    18.11.2019
    Адрес
    Пермь
    Сообщений
    84

    По умолчанию

    Здравствуйте коллеги!
    Подскажите пожалуйста, правильно ли я понимаю: 1 сообщение тревога обрабатывает 1 параметр? Если мне надо контролировать 100 параметров, мне надо создать 100 сообщений тревога и связать их со входом активность сообщения?
    Можно ли создать одно сообщение конкретного типа и привязать к нему кучу параметров?

  8. #638

    По умолчанию

    Цитата Сообщение от Minarion Посмотреть сообщение
    Здравствуйте коллеги!
    Подскажите пожалуйста, правильно ли я понимаю: 1 сообщение тревога обрабатывает 1 параметр? Если мне надо контролировать 100 параметров, мне надо создать 100 сообщений тревога и связать их со входом активность сообщения?
    Можно ли создать одно сообщение конкретного типа и привязать к нему кучу параметров?
    Приветствую,
    если 100 параметров привязать к одному входу ( через или) то при возникновении двух и более событий будет непонятно какое событие произошло

    если надо использовать какие либо превышения, я бы использовал штатные функции - контроль границ
    А если надо только записывать сообщения в архив журнала то можно использовать fb - FireBaseEvent
    Код:
    FOR i := 1 to 5 DO
    IF g_msg_eventChange_D4[i].changed THEN 
    Система(Time:= , Message:=g_msg_eventChange_D4[i].msg , AckTime:= , Acked:= , Severity:=200 , ClientUserId:= , ClientAddress:= , EventTypeId:= , Archive:= );
    END_IF;
    END_FOR;

  9. #639

    По умолчанию

    Может кто-нибудь помочь с получением значений из сообщений в формате JSON? Буду крайне признателен.

    У меня прилетают сообщения по MQTT в JSON. К примеру одно из наиболее маленьких:
    [{"ts":1657711987000,"ms":{"ru1":{"force":-99999,"temp":-2000,"ts":0},"ru2":{"force":-99999,"temp":-2000,"ts":0},"ru3":{"force":-99999,"temp":-2000,"ts":0},"meteo":{"airt":0.000000,"ah":0,"wd": 0,"ws":0.000000}},"hs":"ba5e11c1eacd3873e308427667 5a8d0a"}]

    На входе массив структур(судя по квадратным скобкам), который состоит из: переменной ts, структуры ms и переменной hs.
    Структура ms в свою очередь состоит из структур ru1-3 и структуры meteo.
    Структуры ru1-3 состоят из полей: force, temp, ts.
    Структура meteo состоит из полей: airt, ah, wd, ws.
    Т.е. по сути получается «матрёшка» из полей, вложенных в структуры, которые в свою очередь вложены в ещё одну структуру, которая с двумя переменными составляет массив.
    Я создавал все эти структуры с соответствующими полями и потом вкладывал одно в другое, как указанно в разделе справки «Соответствие элементов JSON и MasterScada 4D.

    Далее чтобы было более понятно
    [{"ts":1657711987000,
    "ms":{
    "ru1":{"force":-99999,"temp":-2000,"ts":0},
    "ru2":{"force":-99999,"temp":-2000,"ts":0},
    "ru3":{"force":-99999,"temp":-2000,"ts":0},
    "meteo":{"airt":0.000000,"ah":0,"wd":0,"ws":0.0000 00}
    },
    "hs":"ba5e11c1eacd3873e3084276675a8d0a"}]

    Согласно справки имена ключей и типы данных должны совпадать. Разработчики устройства, с которого летят сообщения дали мне типы данных: "[{"ts":%lld,"ms":{%s"meteo":{"airt":%f,"ah":%d,"wd" :%d,"ws":%f}},"hs":"%s"}]"
    Как я понял это написано на С. Я сопоставил эти типы данных с данными в 61131-3. Сделал, как указанно в справке создал свой сложный тип данных. Структуру meteo с полями airt,ah,wd,ws, структуры ru1-3 с полями force, temp,ts. Вложил в структуру ms и конечную струтуру с полями ts, hs. И всё это в массив.
    Назначал полученный тип данных параметру канала и в ответ нули. Датчиков на девайсе нет но, ts-вермя и hs- контрольный хэш должны прилетать.
    Возвращаю исходный тип данных, вижу, строку в которой есть данные.
    Ещё если назначить конечным типом данных массив структур( о чём говорят квадратные скобки) то, на выходе и массив, и теперь из 3-х строк.
    А если назначить конечным типом данных структуру(что согласно справке будет не верно) то, всё раскладывается на отдельные параметры но, в них нули, как написано выше.

    Через функцию STRING_TO_OBJECT тоже пытался. Тоже не работает.

    Справка - фуфло. Написана не прозрачно и не однозначно. У ТП как всегда всё работает, всё здорово, "Не понимаем в чём у вас проблема". Способ конвертации крайне неудобен, нужно всё сообщение до последнего ключа раскладывать, а бывают сообщения ооооооооооочень длинные.

    [{"ts":1658146763000,"status":"RN","hw_version":"00 01","base": {"status":"","GSM":"Op: MegaFon RUS, RSSI: -51dBm, BER: 6.400000%","versions": {"hw_version":"0001","fw_version":"NO","fw_bckup_s table_version":"NO","fw_status":"FC"},"data":{"brd _temp":37.000000,"voltage":14.157000,"uptime":5342 31,"rf_status":""}},"cab": {"status":"DO,"},"ru1":{"status":"","b1":{"voltage ":3.410000,"value_charge":20.000000},"brd_temp":29 ,"channel_occup_attempt": 0,"sessions_nak":0,"ru_ltota":1658146756000,"ru_rs si":-66,"rf_ru_rssi":0},"anem": {"temp":0.000000,"status":"WDL"},"t_hum": {"status":"THDL"},"hs":"b7ed13745b79f42642a7eeada4 9f3c5a"}]
    А мне нужен лишь один ключ. И что делать???


    Прилагаю скрины то, как делал и результаты.

    PS.
    Ещё момент, если в сообщении прилетают ключи с именами, совподающими с зарезервированными словами 61131-3 - беда! Т.к. по справке имена полей должны совпадать с ключами. Ничего не сделать.

    В TeslaScada2 это реализовано по другому, у них не используется 61131-3 и реализовано на мой взгляд удачнее. Необязательно всё сообщение до последнего ключа преобразовывать но, ручками поработать придётся тоже.
    структура_meteo.jpgструктура_ru1_3.jpgструктура_ms.jpgструктура_telemetry.jpgключ_at.jpgисходное сообщение.jpgисходное сообщение.jpgесли тип массив структур.jpgесли тип структура.jpgstring_to_object.jpg
    Последний раз редактировалось asutp2003; 22.07.2022 в 14:32.

  10. #640

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Код:
    FOR i := 1 to 5 DO
    IF g_msg_eventChange_D4[i].changed THEN 
    Система(Time:= , Message:=g_msg_eventChange_D4[i].msg , AckTime:= , Acked:= , Severity:=200 , ClientUserId:= , ClientAddress:= , EventTypeId:= , Archive:= );
    END_IF;
    END_FOR;
    Доброго дня.
    Подскажите, .changed - это какое-то пользовательское поле, или системное?
    Поиском по справке такого не нашел (
    Просто интересно каким образом реализовать в MS4D аналог скрипта "по изменению значения", общеупотребительного для других систем.
    Неужели всё самому нужно лепить через дополнительные переменные и функции сравнения?

Страница 64 из 131 ПерваяПервая ... 1454626364656674114 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы по СИ-8
    от aleksandr87 в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 11.06.2016, 18:56
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 15:39
  3. MasterScada v3.6 Основные вопросы
    от colorprint2008 в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 24.12.2013, 16:50
  4. конвертация проекта из Masterscada 3.5 в Masterscada 3.4
    от Сергей_SPB в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 01.04.2013, 17:56
  5. Вопросы по трендам MasterSCADA
    от 42ia в разделе Master SCADA 3
    Ответов: 9
    Последнее сообщение: 26.06.2012, 11:58

Ваши права

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