Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 29

Тема: Упаковать дискретные сигналы для экономии тегов.

  1. #11

    По умолчанию

    Цитата Сообщение от Николаев Андрей Посмотреть сообщение
    Передавать можно и стоит именно сборку. В MasterSCADA есть блок распаковать.
    Вот только SCADA это действительно отслеживает, и посчитает точки не только из OPC, но и этого распаковывающего блока
    Да нет, МастерСкада считает только количество внешних тэгов, что с ними делается дальше уже не учитывается. И на форуме и в документации (и на сайте также вроде видел) это прописано. Спокойно можно упаковывать в ПЛК сигналы в DWORD, а на стороне Скады применить блок "Распаковка 32-битного аналогового сигнала" (или как то похоже называется). Соответственно 32 дискретных сигнала умещаются в один тэг, т.е. в бесплатной сборке на 32 тэга можно уместить 1024 дискретных значения.

  2. #12

    По умолчанию

    Цитата Сообщение от KRUPSKIY Посмотреть сообщение
    Все-таки должен же быть какой-то алгоритм, с помощью которого можно двоичное число закодировать в десятичное и наоборот.
    Типа,как я уже писал выше: Имеется 12 датчиков. Каждому при логической 1 присваиваем десятичное число по возрастающей.(1,10,100,1000,10000...)
    Тогда на выходе вычисляем разность между полной суммой этих чисел и действующей и вычисляем нулевые позиции. Только вот для 12 чисел сильно громоздко. Возможно надо разделить по 6, а еще лучше по 4. Все-таки сэкономлю.
    Вам же Yegor уже дал решение в http://www.owen.ru/forum/showthread....l=1#post216045
    Если вам нужно больше 16 сигналов упаковать, то пакуете не в WORD, а в DWORD:
    Код:
    dw: WORD;
    dw.0 := di1;
    dw.1 := di2;
    dw.2 := di3;
    ...
    dw.25 := di24;
    ...
    Соответственно, на стороне скады этот тэг привязываете к ФБ "Распаковка 32 битного..." в настройках указываете сколько битов распаковывать и выходы блока уже привязываете к конкретным тэгам скады

  3. #13
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от KRUPSKIY Посмотреть сообщение
    Все-таки должен же быть какой-то алгоритм, с помощью которого можно двоичное число закодировать в десятичное и наоборот.
    Типа,как я уже писал выше: Имеется 12 датчиков. Каждому при логической 1 присваиваем десятичное число по возрастающей.(1,10,100,1000,10000...)
    Тогда на выходе вычисляем разность между полной суммой этих чисел и действующей и вычисляем нулевые позиции. Только вот для 12 чисел сильно громоздко. Возможно надо разделить по 6, а еще лучше по 4. Все-таки сэкономлю.
    Вам же уже предложили, двоичную систему
    Каждому при логической 1 присваиваем ДВОИЧНОЕ число по возрастающей.(1,2,4,8,16...)
    И просто с помощью операций сдвига определять 0/1 в соответствующем разряде
    В кодесисе, так как написал Егор
    w AND (1 SHL i) > 0, чтобы вытащить i-й бит из целого w
    В Вашей скаде тоже небось что-то похожее должно быть
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #14

    По умолчанию

    в общем так иногда делают, только используют ряд степеней двойки )) 1 2 4 8 16 ...

  5. #15

    По умолчанию

    Чтож, попробую в двоичной системе, если скада пропустит.

  6. #16
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,673

    По умолчанию

    В некоторых системах можно делать И между числами, не знаю как в MasterScada это реализовано и можно ли.

    Например надо проверить 7 бит числа на наличия 1, к нам прилетает число 35746, сделать с этим числом & 128 (128 десятичное или 0х80 шестнадцатиричное)
    Если на выходе получаем равенство 128, значит 7-й бит в единице. Ну и так далее с остальными числами.

    з.ы. это если не заморачиваться со сдвигом бита.

    Ну можно функцию на C сделать, но вряд ли у вас демо версия с поддержкой C, хотя можете запросить и такой вариант у Мастер Скада.

  7. #17

    По умолчанию

    Вопрос снят. Действительно Masterscada пропустила вариант с простой распаковкой аналогового тега в 32-бит.

  8. #18
    Пользователь
    Регистрация
    22.03.2011
    Адрес
    Ивановская обл, Родники
    Сообщений
    145

    По умолчанию

    А что-же ни кто не сказал про ФБ "PACK" как раз для упаковки битов в ворд. Тема похожая уже поднималась.
    http://www.owen.ru/forum/showthread....highlight=Pack
    А уже Мастерскаде распаковывать до битов.
    Последний раз редактировалось Сергей Мих; 29.07.2016 в 14:21.

  9. #19

    По умолчанию

    А это что ?

  10. #20
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от Сергей Мих Посмотреть сообщение
    А что-же ни кто не сказал про ФБ "PACK" как раз для упаковки битов в ворд. Тема похожая уже поднималась.
    http://www.owen.ru/forum/showthread....highlight=Pack
    А уже Мастерскаде распаковывать до битов.
    Во первых PACK упаковывает только в 8 бит в один байт.
    Во вторых можно безо всяких Паков http://www.owen.ru/forum/showthread....l=1#post187668
    Т.е. подправить файл hardware.cfg для таргета и получить в конфигурации "развернутые" 2byte или даже 4byte,
    т.е. с возможностью доступа к любому биту как в модуле 8bits
    Захват-1.png




    ЗЫ. Если "портить" оригинальный hardware.cfg не хочется, то просто в конфигурации слейва заменить модуль 2 byte, в котором и есть Ваш WORD, на два модуля 8bits, скада об этом даже и не узнает. Соответственно в программе паковать ничего не надо, просто использовать в ней отдельные биты этих 8bits.
    Последний раз редактировалось petera; 29.07.2016 в 16:20.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Подсчет количества тегов
    от klg в разделе Master SCADA 3
    Ответов: 18
    Последнее сообщение: 24.01.2019, 15:23
  2. События из OPC HDA тегов
    от evg3798 в разделе Master SCADA 3
    Ответов: 5
    Последнее сообщение: 05.06.2014, 13:03
  3. Datarate 2.5+ Проблема с добавлением тегов ОРС-RS232
    от rvint в разделе Другие SCADA системы
    Ответов: 0
    Последнее сообщение: 07.06.2013, 10:19
  4. Ответов: 6
    Последнее сообщение: 13.06.2011, 12:32
  5. МВА и дискретные сигналы
    от SCF в разделе Мх110
    Ответов: 2
    Последнее сообщение: 21.04.2011, 12:46

Ваши права

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