В разделе функций есть функции работы с битами.
Как выделить - зависит от того какой именно, младший, старший, средний. Делаете сдвиг вправо и маску 0xFF, либо только маску 0xFF если это младший байт
В разделе функций есть функции работы с битами.
Как выделить - зависит от того какой именно, младший, старший, средний. Делаете сдвиг вправо и маску 0xFF, либо только маску 0xFF если это младший байт
Маскированием битов называются обычный оператор Логическое И.
https://ru.wikipedia.org/wiki/Битовая_маска
Добрый день!
При экспорте тэгов, не экспортируется свойство "Использовать перестановку байтов устройства" в csv. Соответственно нет возможности поменять в excel и при импорте свойство "Использовать перестановку байтов устройства" принимает значение TRUE. Приходится вручную менять на fasle и выбирать перестановку байтов в значении. Возможно ли вообще поменять это свойство через excel при импорте?
Как у группы тэгов можно поменять свойство? В каждый тэг заходить и менять?
Добрый день!
Возник вопрос по передаче числа с 7 числами после запятой. Как лучше передавать такие переменные?
На данный момент округляет число. Тип переменной float.
В новых версиях ОРС сервера в корневом элементе ОРС есть настройка точности
Здравствуйте. Помогите пожалуйста с моей проблемой.
Есть два устройства: Овен ТРМ200 и китайский мультиметр для трехфазной сети электропитания, измеряющий много показателей этой самой сети. Нужно собирать с них данные. Оба настроены на работу по протоколу Modbus RTU (с протоколом Овен не стал связываться пока). Так вот проблема в том, что будучи подключенными через usb свисток-преобразователь в RS-485 они замечательно работают с МастерОРС и данные передают. Даже без терминатора на том конце линии, а находятся они в соседнем помещении подключенные кабелем метров 10. Обычная витая пара ethernet.
Есть в наличии еще и преобразователь от Новатек-электро ET-485. Через него, создавая коммуникационный узел в ОРС типа ТСР/ІР и включая опцию Modbus over TCP оба прибора не отвечают. Выпадает "ошибка выполнения команды 3 превышение таймаута при опросе устройства". Если же выключить Modbus over TCP, то ТРМ200 опрашивается и отвечает (он дальний по топологии от преобразователя), а мультиметр (он ближе) так же не отвечает.
Я понимаю что самый логичный ответ это перенаправить меня к производителю преобразователя. Я с ними уже пытаюсь найти контакты. Но на их сайте все как-то грустно. Форума и обратной связи нет. Пишу им письма и пока в ответ - тишина. Может быть кто-то сталкивался с подобной проблемой?
С такими устройствами работа всегда идет в режиме "Modbus поверх TCP".
Что касается проблемы, тот она полностью на стороне железа - ОРС посылает запрос и ждет ответ.
Для начала можно попробовать оставлять по одному устройству на линии. Проверить что каждое устройство отвечает когда оно одно на линии
Спасибо, разобрался. Дело было в прошивке ЕТ-485. Обновил прошивку и все поехало. Правда в режиме Modbus over TCP - false. Мне не совсем понятно почему так, но работает и пусть себе работает.
ЗЫ: Специально еще раз перепроверил. При Modbus over TCP - true не работает. Устройства не отвечают. При Modbus over TCP - false все устройства отвечают. Склоняюсь все же к мысли, что проблема в особенностях прошивки конвертера от Новатек-Электро.
Еще раз спасибо за ответ.
Значит у вас конвертер из Modbus TCP в Modbus RTU
Добрый день!
Возник вопрос по передаче между ПЛК и MasterOPC. При передачи значений REAL, почему то совпадают цифры до запятой и 3 цифры после запятой (например на ПЛК записываю число 45,4987 в OPC получается 45,49869919)
Почему такое может происходить?
Это особенность работы плавающих чисел на компьютере. С этим ничего сделать нельзя.
Возможно ли в Masterscada создать сообщения с привязкой к биту? Обязательно создавать элемент Событие для сообщения?
Или через событие или через ФБ "Скрипт C#"
Добрый день!
При открытии окна не опрашиваются переменные, у которых опрос по изменению. Т.е. на мнемосхеме есть элемент "Поля выбора", которая привязана к переменной с восстановлением при рестарте. При новой загрузке проекта, галочки пропадают, хотя переменная имеет значение ИСТИНА. Какую настройку я пропустил?
Нужно закольцевать - выход динамизации и вход динамизации завязать на одну и ту же команду
Подскажите пожалуйста такой момент. Скачал бесплатный MasterOPC Universal Modbus Server Demo Build 5.0.14 с ограничением в 32 тэга и Master scada 3.12.0.21813 3.12(RT32ReleaseMax)_21_03_24_21_01.
Создал opc сервер данные, приходящие с датчиков, в нем видны. Использовано тэгов - 30.
В мастерскада создаю проект. В окне Система создан Компьютер1, в нем opc сервер. Все переменные импортировал. В окне объектов у корневого объекта четыре дочерние и в каждом несколько значений. Связал переменные OPC сервера со значениями объектов. Создал мнемосхему, на которой разместил 28 стрелочных индикатора и четыре текстовых. Создал параметры и шкалы и присвоил их перменным.
Запускаю проект в дереве системы вижу значения переменных, импортированных из OPC. На мнемосхеме все шкалы и текстовые значения перечеркнуты красным крестом и в журнале сообщений куча строчек с ошибкой "Использование мнемосхем других компьютеров недоступно в данной версии".
Все делал согласно видео на канале. Конкретно: Пример работы со SCADA-системой MasterSCADA. Часть 1. Вот сслыка: https://www.youtube.com/watch?v=4jTdZ6u8Nx4
Вопрос: из-за чего ошибка и что я сделал неправильно? Нигде в описаниях об ограничениях на использование мнемосхем в бесплатных версиях не встречал.
Архивы с конфигурацией OPC и проектом MasterScada в приложении.
Добрый день!
Возможно ли как-то через файл сделать привязки? Иногда приходится группы изменять и привязки слетают.
Не понятен вопрос. Опишите задачу подробнее
В процессе разработки верхнего уровня, добавляются новые переменные в OPC и MasterScada. Соответственно могут быть перегруппировки или переназначение адресов в OPC. Когда пытаешься добавить уже добавленную переменную в OPC в SCADA (например переменная была в одной группе, потом переместили в другую группу), то привязка слетает т.е. необходимо заново привязывать. Возможно ли как то автоматизировать создание привязки (например где то сначала прописать в каком-нибудь файле или отредактировать, сохранить, а потом просто этот файл подгружать)?
Вы можете включить сервис внешних связей у объекта, делаете экспорт, правите в Excel, делаете импорт
Здравствуйте!
Где можно взять полную документацию на использование ODBC-клиента который поддерживается в insat modbus server , а так же в multiprotocol opc server?
Посмотрите статью:
https://insat.ru/blog/odbc-klient-no...ost-masteropc/
В поставку сервера входят две конфигурации - ODBC_Example и Demo_ODBC.
Посмотрите их.
Также есть описание в справке к скриптам - в разделе Примеры и полезности
2022-01-12 16:11:18.230 SCRIPT.script:[string "--Attention please..."]:33: bad argument #3 to 'format' (no value)
Как это расшифровать?
может что-то вроде string {"--Attention please..."}
Makc ну у третьего аргумента отсутствует поле значение или что-то вроде того. Почему отсутствует? возможно синтаксис...
з.ы. чисто мое предположение ,я не знаю, как правильно в данном конкретном случае. Еще на 'format' ругается, опять же, почему? нет значения - нечего форматировать или надо что-то вроде string.Format( ну и ты ды что там положено)
Так что у вас в 33 строчке?
Судя по всему нет значения.
Так у вас в row.ValueKmp есть значение? Нужно проверить на nil перед записью.
Да и вообще строка какая то странная. Format применяют если нужно вывести значение в каком то виде, например число. Если просто хотите склеить две строки, то формат вам вообще не нужен, просто:
server.Message("Value", row.ValueKmp)
Посмотрите описание функции в справке
server.Message(string.format("Value", row.ValueKmp)) - если не ошибаюсь, то должно быть что-то вроде
string.format("Value {0}", row.ValueKmp)
Думаю вся проблема в синтаксисе и правильности записи "формулы"
Разобрался с проблемой. Все заработало, данные из SQL получал, успешно записывал в тэг.
Скопировал код перенес на рабочий ОРС Multi-prtocol Master OPC Server.
Получаю ошибку:
13-01-2022 15:14:05.908 script:[string "--Attention please..."]:11: attempt to index global 'odbc' (a nil value)
Строка 11 : env = odbc.env_create();
:(
ODBC в Multi-Protocol работает только при покупке User Script на 10К точек:
https://insat.ru/products/?category=1274
Подскажите пожалуйста.
Поместил на мнемосхему тренд. Перетащил туда значения объектов. Как мне теперь открыть список источников данных для этого тренда чтобы их редактировать? Ну то есть добавить я могу перетаскиванием. А удалить как или связи изменить?