Страница 65 из 136 ПерваяПервая ... 1555636465666775115 ... ПоследняяПоследняя
Показано с 641 по 650 из 1353

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

  1. #641

    По умолчанию

    Цитата Сообщение от Larrrik Посмотреть сообщение
    Доброго дня.
    Подскажите, .changed - это какое-то пользовательское поле, или системное?
    Поиском по справке такого не нашел (
    Просто интересно каким образом реализовать в MS4D аналог скрипта "по изменению значения", общеупотребительного для других систем.
    Неужели всё самому нужно лепить через дополнительные переменные и функции сравнения?
    Сделал для себя, в первую очередь необходимо было отслеживать изменение уставок, может пригодится:
    Это FB для float,
    для интов надо изменить input на нужный int,
    а так же localVar объявить интом
    Код:
    double localVar ; 
    bool init;
     
    public override void Execute()
    {
     if (enable)
     	{
    	compareResult= input.CompareTo(localVar);
    	changed=false;	
    	
      if ( compareResult !=0 ) 
    	{
    		changed=true && init;
    		
    		message = "Значение параметра [ "  + nameParam +  " ] изменено. "   + " Было: " +  localVar + " Стало: " + input ;
    		
    	}
     
     localVar = input;
     init = true;
     }
    }
    Изображения Изображения

  2. #642
    Пользователь
    Регистрация
    05.10.2016
    Адрес
    Новосибирск
    Сообщений
    35

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Да можно, см. скриншот
    Ув VladGC, судя по картинке сам параметр lreal остался целым (1267), а мы получаем только его отображение на текстовом поле 12.67. А можно ли получить параметр типа LREAL с делением на 100 без доп. программы?

  3. #643

    По умолчанию

    Установил пароль на проект. Можно ли сделать так, что при открытии, когда требуется ввести пароль, он был под звездочками, а не в открытом виде?

  4. #644

    По умолчанию

    Цитата Сообщение от asutp2003 Посмотреть сообщение
    Может кто-нибудь помочь с получением значений из сообщений в формате 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 и реализовано на мой взгляд удачнее. Необязательно всё сообщение до последнего ключа преобразовывать но, ручками поработать придётся тоже.
    Вложение 61792Вложение 61793Вложение 61794Вложение 61795Вложение 61796Вложение 61797Вложение 61797Вложение 61798Вложение 61799Вложение 61800
    Вы можете использовать c# , там есть чем поработать с json

  5. #645

    По умолчанию

    Цитата Сообщение от Stab Посмотреть сообщение
    Ув VladGC, судя по картинке сам параметр lreal остался целым (1267), а мы получаем только его отображение на текстовом поле 12.67. А можно ли получить параметр типа LREAL с делением на 100 без доп. программы?
    На счет поделить без программы я не знаю, думаю вряд ли так можно сделать.
    А в чем сложность набросать пару строк?

  6. #646

    По умолчанию

    Цитата Сообщение от Bigcrash Посмотреть сообщение
    Установил пароль на проект. Можно ли сделать так, что при открытии, когда требуется ввести пароль, он был под звездочками, а не в открытом виде?
    Тут надо писать петицию разработчикам, в бета версиях такого нет, возможно просто мало кому надо

  7. #647

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Вы можете использовать c# , там есть чем поработать с json
    Не будет ли у Вас примера работы(желательно в MS4D)?
    Буду признателен

  8. #648

    По умолчанию

    Цитата Сообщение от asutp2003 Посмотреть сообщение
    Не будет ли у Вас примера работы(желательно в MS4D)?
    Буду признателен
    На c# примера нет, возни мне кажется там больше



    Сделал стандартными средствами:

    https://dropmefiles.com/Qzuuj
    Изображения Изображения

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

    По умолчанию

    Здравствуйте уважаемые специалисты, работаю с MasterSCADA 4D 1.2 и столкнулся с следующей проблемой. В проект по OPC UA я забираю массив из 1000 REAL и мне нужно отобразить на мнемосхеме конкретный индекс массива например [100] или [800] но перетягивать значение путем драген дроп возможно только всего массива а не конкретного индекса……В заранее благодарю за ответ.

  10. #650

    По умолчанию

    Цитата Сообщение от TEHNOLINK Посмотреть сообщение
    Здравствуйте уважаемые специалисты, работаю с MasterSCADA 4D 1.2 и столкнулся с следующей проблемой. В проект по OPC UA я забираю массив из 1000 REAL и мне нужно отобразить на мнемосхеме конкретный индекс массива например [100] или [800] но перетягивать значение путем драген дроп возможно только всего массива а не конкретного индекса……В заранее благодарю за ответ.
    Создаете параметр типа LREAL, в программе ему присваиваете значение определенного индекса массива. Сам индекс можно тоже задинамизировать. Далее все кидаете в окно.
    Безымянный 1.png
    Безымянный 2.png

Страница 65 из 136 ПерваяПервая ... 1555636465666775115 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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