А зачем?
Сделайте в скаде эту обработку.
В ОРС - если только скриптами.
А зачем?
Сделайте в скаде эту обработку.
В ОРС - если только скриптами.
Пример в приложении
Пример в приложении
Спасибо огромное, этот вариант рабочий :)
Здравствуйте!
Пытаюсь привязать к MasterSCADA вентустановку VTS. В карте регистров есть Coil, DiskreteInput, HoldingRegister и InputRegister. В ПЛК Овен, например, можно прочитать регистр, а потом разложить его на биты (другого опыта у меня нет). Можно ли то же самое сделать с Coil и DiskreteInput, И по каким адресам к ним надо обращаться ( если это можно, конечно)?
Coils разложить на биты нельзя - это уже бит.
DiscreteInput можно разложить.
По каким адресам обращаться - нужно смотреть в документации к прибору.
Здравствуйте, SCADAMaster.
Подскажите пожалуйста как сделать так, чтобы если устройство в обрыве (т. е. приходит качество BAD) значения тэгов обнулялись??? Сейчас же если приходит качество BAD то в тэгах остаются последние значения и получается что в БД пишутся нормальные значения, хотя прибор в обрыве.
такой ответ не подходит?
OPC поддерживает Lua скрипты. Анализируйте качество переменных и в зависимости от качества проставляйте им нужные параметры.
Как работать с Lua описано в справке. Примеры скриптов можете посмотреть тут https://insat.ru/products/?category=2114
вообще не заметил каких либо проблем, по справке накидал пример и всё работаетесли пришел BAD меняет любое значение на -1Цитата:
TV,TQ,TS = server.ReadTag("Node.Device.Group.Tag") ;
if TQ == OPC_QUALITY_BAD then
server.WriteTag("Node.Device.Group.Tag",-1,TQ);
end
Добрый день.
Подскажите, как передавать данные из OPC в Excel. Нашел скудную статью, но код не работает. Не все моменты там объяснены, что откуда берется. Может кто пример кинет, для любого тэга из симулятора. Спасибо.
Как то разбирался, сделал статью
Но нужно хорошо понимать зачем именно OPC?
Ведь если есть протокол Modbus то существует множество способов заполнить данные в эксель
Cпасибо за статью. Но использование ПО, которое нужно перезагружать раз в час... Не подойдет.
У нас на самом деле не только ModBus, но его 90%. Хотел начать с него. И как я думал это тривиальная задача, как оказалось нет. Почему именно ОРС - да просто удобно, когда номенклатура различных контроллеров и прочих MB устройств исчисляется не одним десятком, использование Вашего способа не очень удобно и трудоемко. Охото получить стандартизованный тег независимо от устройства и дальше его обрабатывать.
Bigcrash у вас везде ОРС ? может поставить рядышком ПК с другой Scada и все перегонять в любую БД ? А уж из БД в Exel думаю куда проще передавать получится...
Bigcrash, "неужели все с SQL/Access и т.п. тянут данные"
Нет. Вы скриптами должны формировать запись по изменению в SQL, а потом с этими свободными данными делайте то, что хотите
Здравствуйте! В АСУ ТП я новичек. Имеется прибор, который выдает уровень по двум адресам в стандарте IEEE754. Как мне его "перевести" в ОРС сервер, чтобы он выводил корректно уровень. Найденная мною информация по этому поводу не помогла, потому как я не силен в скриптах. Может, поможете?
IEEE754 это стандарт чисел с плавающей запятой - float и double.
Указываете тип данных Float у устройства и сервера - и все. Может потребоваться чередование.
Спасибо за ответ. О результатах отпишусь позже.
Спасибо еще раз. В регистре данных с четным адресом как раз то, что мне нужно. Меня смутила инструкция к прибору (Гамма-10 от "Альбатроса"), а именно-"Регистр данных с четным адресом содержит в старшем байте байт порядка и знака мантиссы параметра, а в младшем байте - старший байт мантиссы параметра. Регистр данных с нечетным адресом содержит в старшем байте байт средний байт мантиссы параметра и в младшем байте - младший байт мантиссы параметра."
Еще раз огромное спасибо!
Чередование не потребовалось.
Подскажите, как сделать так, что бы при выходе из режима исполнения Мастерскады_3 - MasterOPC Server продолжил свою работу!
Запускать его отдельно от скады.
В справке к ОРС есть раздел Режимы работы - посмотрите его.
Здравствуйте! Как на Lua в Modbus Universal MasterOPC Server создать массив размерностью 0-255 с типами переменных 4х байтовое целое? в старом visual basic тип называется integer:(Содержит 32-разрядные (4-байтовые) целые числа со знаком в диапазоне от -2 147 483 648 до 2 147 483 647)
как делать логические or, and с HEX числами?
например: bit.BitXor(CRC,F12A); - где CRC переменная, а F12A - число в 16тиричной системе
необходимо для подсчета контрольной суммы протокола опроса контроллеров mitsubishi A2 по ком порту
В Lua нет целых чисел, там есть тип number, который представляет собой double число.
Поэтому просто делайте table с обычными числами.
Для работы с битами, используйте функции раздела bit. Описание функций есть в справке.
А есть возможность записи чисел hex ? Как указать тип переменных масива?
Что подразумевается под записью? HEX числа у нас вводятся как 0xAB
Тип данных в LUA не указывается - у него динамическая типизация
Запись, т.е. присвоение числа переменной, записать в переменную.... это я имел ввиду. Т.е. local var1=0xB14C это и будет запись 16ти ричного числа в переменную? Спасибо
Да...........
Вложение 51094 Я еще раз извиняюсь, можете подсказать почему не проходит компиляция?
Lua чувствителен к регистру. then и if нужно с маленькой писать.
А если тип данных не указывается, как тогда создать массив байт?
Создаете массив чисел. В чем именно проблема?
double число явно больше по размерности чем байт.
Посмотрите описание функции SendAndReciveDataByMask
Подскажите пожалуйста не срабатывает патч для Windows XP. Версия Master OPC 5.0.4 Выполнено все по инструкции. При первой установке патч находит файл говорит что пропатчено, но ошибка при попытке запуска не уходит. Может нужно версию предыдущую установить попробовать? Но где ее взять?
Ps windows xp SP3