PDA

Просмотр полной версии : Вопросы по MasterSCADA 4D



Страницы : 1 2 3 4 5 6 7 [8]

1exan
12.08.2025, 13:16
Вы имеете ввиду когда ПР205 Мастер и собирает переменные у себя, а Пр200 слейв? Эта схема понятна.

А других схем тут и не сделать

Ильнур
12.08.2025, 14:22
Добрый день! Где можно почитать про отключения функциональных клавиш masterscada 4d? Есть ли такая возможность? Или надо использовать сторонние программы?

Larrrik
15.08.2025, 07:10
Добрый день! Где можно почитать про отключения функциональных клавиш masterscada 4d? Есть ли такая возможность? Или надо использовать сторонние программы?

Посмотрите здесь: https://support.mps-soft.ru/Help-web/index.html?bezopasnost_____gruppw_pol_zovateley.ht ml
Пункт "Блокировать доступ к операционной системе".

Ильнур
15.08.2025, 14:15
Добрый день!

_date := DT_TO_DATE(GET_UTC_TIME());
_time := DT_TO_TOD(GET_UTC_TIME());
_datetime := GET_UTC_TIME();

как вытащить месяц и день недели в строку?

Ильнур
15.08.2025, 14:20
Добрый день!

_date := DT_TO_DATE(GET_UTC_TIME());
_time := DT_TO_TOD(GET_UTC_TIME());
_datetime := GET_UTC_TIME();

как вытащить месяц и день недели в строку?

Решил задачу

kyzzechka
21.08.2025, 16:08
добрый день! как привязать переменную к AI каналу протокола ModBus RTU? при подключении путем перетаскивания, значение передается на выход канала. при этом значение канала остается прежним. (на фото видно, значение должно быть -1100)85380

1exan
21.08.2025, 19:03
добрый день! как привязать переменную к AI каналу протокола ModBus RTU? при подключении путем перетаскивания, значение передается на выход канала. при этом значение канала остается прежним. (на фото видно, значение должно быть -1100)85380

Может попробовать привязаться непосредственно к переменной "Выход"?

NikNP
03.09.2025, 11:22
Доброго времени суток. Только начинаю знакомится с данной системой, изучаю основную документацию. Столкнулся с проблемой, не вычитываются данные с регистров в MS по протоколу ModBus TCP, при этом все корректно вычитывается в ModBus Poll. Подскажите что делаю не так, скрины прилагаю.

Александр Пинэко-Скворцов
03.09.2025, 11:29
Доброго времени суток. Только начинаю знакомится с данной системой, изучаю основную документацию. Столкнулся с проблемой, не вычитываются данные с регистров в MS по протоколу ModBus TCP, при этом все корректно вычитывается в ModBus Poll. Подскажите что делаю не так, скрины прилагаю.

Добрый день.

В Modbus Poll у вас установлено чтение Input-регистров, а в MS4D регион HOLDING_REGISTERS. Соответственно, нужно поменять регион на INPUT_REGISTERS.

NikNP
03.09.2025, 11:37
Пробовал менять как функции, так и типы данных, все равно не работает.
Хотя подождите, ушел статус об ошибке, но значение все равно не меняется.

Александр Пинэко-Скворцов
03.09.2025, 11:43
Пробовал менять как функции, так и типы данных, все равно не работает.

1.
Настройки канала следует задавать в свойствах узла AI1, а не в свойствах ModbusTCP Device. Там, соответственно опросу в MP, указать адрес от 0 до 9.
2.
Опрос из Modbus Poll останавливаете прежде чем запускать MS4D? Это на случай, если устройство поддерживает только одно подключение по 502 порту одновременно.

NikNP
03.09.2025, 12:20
Вроде все настроил, подскажите а есть ли возможность полученные данные в hex формат переводить?

Александр Пинэко-Скворцов
03.09.2025, 13:31
Вроде все настроил, подскажите а есть ли возможность полученные данные в hex формат переводить?

Добавьте в дереве проекта программу, в коде используйте функцию конвертации WORD_TO_HEX. Подробнее о программах см. в справке: https://support.mps-soft.ru/Help-web/
85563

Yakut
23.09.2025, 10:56
А как/где найти ID тега?

МихаилГл
23.09.2025, 11:25
А как/где найти ID тега?

Может там, где вы прописывали адреса регистров для модбас подключения? Там вроде список тэгов появляется, и у каждого в свойствах свой id... А можно ли как то серез поиск, хз...

Yakut
23.09.2025, 12:50
Может там, где вы прописывали адреса регистров для модбас подключения? Там вроде список тэгов появляется, и у каждого в свойствах свой id... А можно ли как то серез поиск, хз...

о, точно, благодарю.
Так мутно написано, аж в глаза не бросается.

sanya0971
25.09.2025, 12:32
Добрый день!

Версия: 1.3.9.26562

Обратите внимание, есть следующий баг:

У объекта "Числовой ввод" появилось новое свойство (может в более ранней версии, не скажу точно когда) - "Отображать единицы измерения".
Оно не работает и более того ломает внешнюю подвязку к этому элементу. Будет всегда показываться число 50.

1. Создать в локальной библиотеке объект.
2. В созданном объекте создать окно
3. В окно добавить "Числовой ввод". Активировать у него "Отображать единицы измерения", прописать к примеру "Па" в поле "Единица измерения".
4. Добавить параметр и связать его с свойством "Текущее значение"
5. Перенести библиотечный объект в дерево проекта выше и вызвать его на стартовом окне.
6. Результат - получите такую ошибку как на скрине и подвязка к параметру работать не будет.

Если убрать галку из свойства "Отображать единицы измерения" у библиотечного объекта, то все будет работать без проблем.

П.с ошибка компиляции, показанная на скрине появляется ровно через раз. Т.е если еще раз нажать на компиляцию, то ее не будет. И все запустится, но работать поле не будет.

МихаилГл
25.09.2025, 12:49
Может проблема в том, что для элемента ввода не должно быть никаких дополнительных элементов, как например текст единицы измерения. Просто взяли библиотечный элемент, а убрать это свлйство просто забыли, ну или забыли остатки удалить. Как вы прежставляете ввод данных типа 32 Па...?

eugenengine
05.10.2025, 20:47
Здравствуйте, столкнулся с проблемой записи данных с параметра Masterscada 4d в протокол Modbus RTU контроллера M3000-Т, параметр чтение/запись System real param и в протоколе и в дереве объекта. В дереве объекта завел под это дело два параметра - один для отображение уставки, другой для записи. И вот, при изменении параметра в протоколе, данные в дерево записываются в параметр который я привязал для отображения, все хорошо, а при изменении значения параметра который для записи из дерева в протокол, в протоколе изменений никаких не происходит.
Версия Мастерскады 1.2.18, м3000т версии 2.0, он к слову еще в демо версии системы исполнения, запрос на предоставления лицензии направил, пока не ответили. Данная проблема наблюдается и на реальном обьекте, где уже стоит RT с ключом, и в демо версии в режиме эмуляции контроллера. При назначении дерева объекта в узел контроллера - работает, но соответственно не получается уже с исполнения скады ничего сделать. Может так быть из за отсутствия лицензии на м3000т инсат, если нет, то в чем еще может быть причина, так понимаю межузловая связь по умолчанию должна отрабатывать?
86020

МихаилГл
05.10.2025, 21:03
Там много особенностей. Вместо параметра возможно требуется привязывать к полю value. Еще много проблем изза того, что переменная разделена на 2 части: read и write в данной скаде. Я как то победил это месяц назад, скриптом в скаде и логикой в плк (овен плк210). Странная скада...

eugenengine
05.10.2025, 21:24
Знаю что эта скада с особенностями:D, не первый раз уже делаю проект и на 3й и на 4й, перепробовал уже много разных вариаций за пару дней и чисто в переменную value в том числе пробовал писать. До этого просто у меня всегда был локальный опс, межузловой связи не было. без проблем все работало.
Тут как бы в целом не с переменными read/write проблема как будто. если просто параметр write использовать и писать в протокол в такой же параметр чисто с доступом write ничего не происходит, в дереве меняется а тудой не улетает в другой узел.
Забыл уточнить что если прям напрямую в протокол с окна привязь делать то все ок, но оставил это на крайний случай, хотелось бы все таки как всё остальное через параметры дерева.

eugenengine
07.10.2025, 23:14
В общем вдруг кому то пригодится, но кажется получилось победить это, по крайней мере в режиме симуляции заработало, думаю и на объекте заработает, надо создать глобальный параметр в системе узла АРМ и узла контроллера, из объекта связать параметр с глобальным параметром АРМ, его глобальный параметр с глобальным параметром контроллера, а его в свою очередь с протоколом, вот такая веселая матрешка получилась:D И да кстати я там писал что если напрямую с картинкой связать параметр протокола то передача заработает, так работает только с булевыми параметрами, но не с числовыми:D
P.s. Рано радовался, на объекте в итоге не заработал

Андрей111182
01.11.2025, 08:30
Добрый день
Столкнулся с такой проблемой. Разрабатывался проект на одной машине, на ней была развернута MS и Owen OPC локально. ОС win10
Все нормально работало, запускалось, связь исправно работала от ПЛК до СКАДА

Когда проект перенесли на другую машину, то столкнулся с двумя проблемами

1. Проект просто от раза к разу отказывается запускаться, клиент выдает окно "Загрузка..." и зависает бесконечно.
После нескольких попыток запуска и танцев с бубнами проект все же запускается (до следующей перезагрузки ПК)
но возникает другая проблема

2. После переноса проекта OPC сервер указал другой. Такое же Owen OPC, установленный локально уже на новой машине
MS в режиме отладки этот сервер увидела и его теги увидела
но после запуска обмена между OPC сервером и СКАДа нет ни в какую сторону

Может кто-то что-то подсказать?

Sergey361
01.11.2025, 09:48
Если ничего не работает, ни обмен, ни визуализация... Может с RT что не так, удалить и снова установить. Версии совпадают у RT и среды разработки? Но если отказ внешних модулей, возможно, связи нет. Это в логе надо смотреть

kondor3000
01.11.2025, 10:53
Даже если нет обмена с модулями, экран должен запуститься. Возможно слетела настройка, сделать экран стартовым.
По модулям, смотреть настройки обмена. Работу ОРС сервера и СОМ порта (возможно СОМ порт другой).

senat892
07.11.2025, 13:11
Добрый день! Кто-нибудь сталкивался с проблемой, когда при конвертировании проекта в 1.3.9 (в моем случае из 1.3.7) напрочь перестают работать запросы протокола PostgreSQL?
При этом ничего ни в проекте (кроме конвертирования), ни на сервере БД (сама БД в порядке и отвечает) не менялось и проверка соединения с БД в свойствах протокола проходит успешно.

МихаилГл
07.11.2025, 13:14
Добрый день! Кто-нибудь сталкивался с проблемой, когда при конвертировании проекта в 1.3.9 (в моем случае из 1.3.7) напрочь перестают работать запросы протокола PostgreSQL?
При этом ничего ни в проекте (кроме конвертирования), ни на сервере БД (сама БД в порядке и отвечает) не менялось и проверка соединения с БД в свойствах протокола проходит успешно.

А примитивные запросы, например, ну или примеры ваших, работают в пустом чистом проекте? Может баг в самой скаде?

senat892
07.11.2025, 13:58
У меня тоже сложилось впечатление, что это баг скады или какое-то изменение в лицензионной политике с модулем MSRT-DB...)))
Запросы и так примитивны - select, update, insert и т.д., работают асинхронно и независимо, из проекта подставляются только переменные (строка query формируется без ошибок) и запускается (команда "Подключиться" тоже проходит).
И все - ни ответа, ни привета. Нет никаких ошибок в протоколе и результата.

AlttarBoy
02.12.2025, 11:47
День добрый, подскажите пожалуйста как строки в ST сложить? CONCAT(); не особо удобно использовать, когда много данных объединить надо.
string3:=string1+string2; не работает
string3:=string1*string2; не работает
string3:=string1&string2; не работает (

в идеале что-то вроде: string3:=string1+"text"+string2+"text2";

1exan
02.12.2025, 12:18
День добрый, подскажите пожалуйста как строки в ST сложить? CONCAT(); не особо удобно использовать, когда много данных объединить надо.
string3:=string1+string2; не работает
string3:=string1*string2; не работает
string3:=string1&string2; не работает (

в идеале что-то вроде: string3:=string1+"text"+string2+"text2";

Кроме CONCAT наверно ничего нет, именно она в примерах от мастерскады используется

melky
02.12.2025, 12:36
а что-то типа $"Тут переменная X - {x} а тут переменная Y - {y}" нету разве? и вместе {x}{y}

На ST не помню, есть ли аналог сборки строк таким образом.

МихаилГл
02.12.2025, 12:37
День добрый, подскажите пожалуйста как строки в ST сложить? CONCAT(); не особо удобно использовать, когда много данных объединить надо.
string3:=string1+string2; не работает
string3:=string1*string2; не работает
string3:=string1&string2; не работает (

в идеале что-то вроде: string3:=string1+"text"+string2+"text2";

for i:=1 to n do
text:= concat(text, нужный текст[i]);
next i

Как то так в одну команду...

AlttarBoy
02.12.2025, 12:59
Спасибо за советы, как-то странно, вроде везде на ST спокойно со строками можно работать, а тут костыльно как-то...

Dead Kid
04.12.2025, 17:50
Здравствуйте. Нужно сделать два журнала в скаде - журнал аварий и журнал действий. Добавил объекту 2 папки с сообщениями, на экран поставил контрол Журнал, но не могу найти как добавлять нужные сообщения в соответствующие журналы. Подскажите, пожалуйста.

1exan
04.12.2025, 18:27
Здравствуйте. Нужно сделать два журнала в скаде - журнал аварий и журнал действий. Добавил объекту 2 папки с сообщениями, на экран поставил контрол Журнал, но не могу найти как добавлять нужные сообщения в соответствующие журналы. Подскажите, пожалуйста.

Посмотрите вот здесь в справке (https://support.mps-soft.ru/Help-web/graficheskiy_element__jurnal.html) раздел "Источники, сообщения от которых попадают в журнал". Там же ниже есть ссылка про журнал действий

Woodman
18.12.2025, 13:57
Вопрос к знатокам.
Как уменьшить шрифт в таблице данных?
Не смог нигде найти.

1exan
18.12.2025, 14:15
Вопрос к знатокам.
Как уменьшить шрифт в таблице данных?
Не смог нигде найти.

Аналогично - смотрите в справке (https://support.mps-soft.ru/Help-web/graficheskiy_element__tablica_dannwh.html), редактор таблицы

Electric11183
20.12.2025, 15:08
Добрый день.
Прохожу экспресс курс по обучению Masterscada 4D.
Тормознулся на модуле №8 - Дерево библиотек: не получается изменить тип отношений экземпляра с "унаследован" на "ссылается". Выскакивает ошибка: "object reference not set to an instance of an object".
Никто не подскажет куда копать?87313

1exan
20.12.2025, 20:01
Добрый день.
Прохожу экспресс курс по обучению Masterscada 4D.
Тормознулся на модуле №8 - Дерево библиотек: не получается изменить тип отношений экземпляра с "унаследован" на "ссылается". Выскакивает ошибка: "object reference not set to an instance of an object".
Никто не подскажет куда копать?

А что вы нажимаете перед получением этой ошибки?

Electric11183
21.12.2025, 11:22
А что вы нажимаете перед получением этой ошибки?

Пытаюсь изменить тип отношений через контекстное меню:
87326

1exan
21.12.2025, 14:16
Пытаюсь изменить тип отношений через контекстное меню:


А если создать ещё одного наследника и попробовать снова?

Electric11183
21.12.2025, 17:56
А если создать ещё одного наследника и попробовать снова?

Пытался. Добавлял второй экземпляр - та же ошибка. После добавления второго удалял первый - та же ошибка.
Разорвать связь получалось, а изменить тип связи - нет.
Вопрос решился закрытием программы и ее повторным открытием.
Спасибо.

Electric11183
22.12.2025, 07:53
Прошу подсказать, что делаю не так:
хочу сделать библиотечный элемент - преобразователь давления 4-20мА.
Пользователю нужно будет заполнить 2 поля ввода: разрядность АЦП контроллера (переменная ui_ADC_value) и текущее значение этого самого АЦП (ui_CurrentValue).
В результате программа должна показать ток в мА.
Программа работает, если вводить значение переменных непосредственно на клеммнике ввода в окне ST.
Но через окно визуализации данные ввести не получается.
Все, что было сделано для привязки окна визуализации к программе - это перетаскивание переменных из дерева объекта в соответствующее поле ввода в окне визуализации.
87333

1exan
22.12.2025, 15:29
Прошу подсказать, что делаю не так:
хочу сделать библиотечный элемент - преобразователь давления 4-20мА.
Пользователю нужно будет заполнить 2 поля ввода: разрядность АЦП контроллера (переменная ui_ADC_value) и текущее значение этого самого АЦП (ui_CurrentValue).
В результате программа должна показать ток в мА.
Программа работает, если вводить значение переменных непосредственно на клеммнике ввода в окне ST.
Но через окно визуализации данные ввести не получается.
Все, что было сделано для привязки окна визуализации к программе - это перетаскивание переменных из дерева объекта в соответствующее поле ввода в окне визуализации.


Встаньте на поле ввода и посмотрите в свойствах, есть ли у вас ИСХОДЯЩАЯ связь у параметра "Текущее значение"?

Electric11183
22.12.2025, 16:22
Встаньте на поле ввода и посмотрите в свойствах, есть ли у вас ИСХОДЯЩАЯ связь у параметра "Текущее значение"?

Да, это поле связано с переменной "ui_CurrenrValue". Или Вы не про это спрашиваете?
87342

1exan
22.12.2025, 18:02
Да, это поле связано с переменной "ui_CurrenrValue". Или Вы не про это спрашиваете?
87342

Да, и там сейчас связь только ВХОДЯЩАЯ - т.е. от переменной в поле ввода.
А чтобы из поля ввода значение могло попасть в переменную - нужна исходящая связь (можно перетащить Текущее значение на переменную).
Но для этого и переменная должна иметь доступ "Чтение/Запись" (сейчас, например, связанная с полем переменная "ui_CurrenrValue" имеет доступ "Чтение")

Electric11183
23.12.2025, 11:03
Да, и там сейчас связь только ВХОДЯЩАЯ - т.е. от переменной в поле ввода.
А чтобы из поля ввода значение могло попасть в переменную - нужна исходящая связь (можно перетащить Текущее значение на переменную).
Но для этого и переменная должна иметь доступ "Чтение/Запись" (сейчас, например, связанная с полем переменная "ui_CurrenrValue" имеет доступ "Чтение")

Я в результате не понял, как добиться исходящей связи от поля ввода в переменную путем перетаскивания.
Но получилось это сделать через перетаскивание мышью переменной в окно и выбором в контекстном меню: кнопка -> двухсторонняя связь.
В итоге все заработало. Спасибо.

Появились несколько др вопросов:
1) Чтобы передать значение из поля ввода в переменную достаточно ли только исходящей связи или нужна исходящая/входящая;
2) Чтобы объявить локальную промежуточную переменную, как ее завести в программу на ST? Создавать на клеммнике или в программе можно объявить? Если в программе - то нужно ли прописывать VAR /EndVar или программа сама вычислит? Может меня кто-нибудь носом ткнет в руководтство по MS4, где конкретно про переменные и области их объявления почитать.
3) Как настроить для стрелочного прибора точность в 2 ед после запятой? Получаю или целое значение или чрезмерно точное. f2 в настройках точности не воспринимает. В справке указано только, что у точность тип LREAL. Не понимаю, как это может помочь.
87349
87350

Заранее благодарю.

danilmyasnikov741
23.12.2025, 14:36
Здравствуйте, коллеги!

Когда добавляю событие "Открыть приложение" по нажатию кнопки, при подключении в среде разработки выводится ошибка "Недоступны опции : MSRT4D-ProcessCreate". Такая же ошибка выходит если я создаю программу с ФБ SysProcessCreate.

Может ли ошибка быть связана с тем что я использую ограниченную версию на 32 тега?

Версия: 1.3.9.26561(1.3.9_20250902.2)

87354

melky
23.12.2025, 14:41
скорее всего, где-то в документации на Демо есть описание ограничений, типа мелким шрифтом :)
пробуйте не Демо а триал с временем работы 1 час, и кстати там тоже могут быть нюансы

danilmyasnikov741
23.12.2025, 14:55
скорее всего, где-то в документации на Демо есть описание ограничений, типа мелким шрифтом :)
пробуйте не Демо а триал с временем работы 1 час, и кстати там тоже могут быть нюансы

Но ведь среда разработки предоставляется без ограничений как я понял, в ней должно всё работать? Почему в среде разработки MasterSCADA 4D возникает ошибка RT? Они же независимо должны работать?

kondor3000
23.12.2025, 15:02
Но ведь среда разработки предоставляется без ограничений как я понял, в ней должно всё работать? Почему в среде разработки MasterSCADA 4D возникает ошибка RT? Они же независимо должны работать?

При запуске надо выбрать RT или внутренняя работа.
И 32 тега по моему с ограничениями идёт. Без ограничений на 1 час.

1exan
23.12.2025, 17:02
...
Появились несколько др вопросов:
1) Чтобы передать значение из поля ввода в переменную достаточно ли только исходящей связи или нужна исходящая/входящая;
2) Чтобы объявить локальную промежуточную переменную, как ее завести в программу на ST? Создавать на клеммнике или в программе можно объявить? Если в программе - то нужно ли прописывать VAR /EndVar или программа сама вычислит? Может меня кто-нибудь носом ткнет в руководтство по MS4, где конкретно про переменные и области их объявления почитать.
3) Как настроить для стрелочного прибора точность в 2 ед после запятой? Получаю или целое значение или чрезмерно точное. f2 в настройках точности не воспринимает. В справке указано только, что у точность тип LREAL. Не понимаю, как это может помочь.


1. Чтобы ПЕРЕДАТЬ значение из поля в переменную - да, достаточно только исходящей. Но чтобы отобразить текущее значение переменной - нужна входящая связь от переменной к полю ввода, иначе при изменении значения переменной каким-то другим методом - в этом поле ввода новое значение не увидеть. А чтобы в некоторых случаях не получить циклическое изменение - есть там рядом флажок "Использовать входящую связь только для отображения".
2. На данный момент - можно хоть как, раньше - только через клеммник программы. Все необходимые объявления будут сделаны автоматически - можете их посмотреть в Легенде, на вкладках Заголовок ST и Скомпилированный код. Читать тут (https://support.mps-soft.ru/Help-web/globalnye_peremennye.html)
3. LREAL как бы намекает, что это должно быть число, а не строка. Если надо 2 знака после запятой - наверно надо поставить туда 2, собственно так в справке (https://support.mps-soft.ru/Help-web/graficheskiy_element__strelochnwy_pribor.html) и написано

Electric11183
25.12.2025, 17:37
1. Чтобы ПЕРЕДАТЬ значение из поля в переменную - да, достаточно только исходящей. Но чтобы отобразить текущее значение переменной - нужна входящая связь от переменной к полю ввода, иначе при изменении значения переменной каким-то другим методом - в этом поле ввода новое значение не увидеть. А чтобы в некоторых случаях не получить циклическое изменение - есть там рядом флажок "Использовать входящую связь только для отображения".
2. На данный момент - можно хоть как, раньше - только через клеммник программы. Все необходимые объявления будут сделаны автоматически - можете их посмотреть в Легенде, на вкладках Заголовок ST и Скомпилированный код. Читать тут (https://support.mps-soft.ru/Help-web/globalnye_peremennye.html)
3. LREAL как бы намекает, что это должно быть число, а не строка. Если надо 2 знака после запятой - наверно надо поставить туда 2, собственно так в справке (https://support.mps-soft.ru/Help-web/graficheskiy_element__strelochnwy_pribor.html) и написано

1. Тут разобрался.
2. В легенде увидел вкладку скомпилированного кода. При этом все объявленные переменные сформированы как входные(Var_Input) или выходные (Var_Output). Как создать обычную (Var) так и не понял. Если в коде программы объявить новую переменную непосредственно в программе - код не компилируется пока не вытащишь эту переменную на клеммник. И в зависимости от того, на какой клеммник вытащить, входной или выходной, переменная попадает в соответсвующую область объявления. То есть становится или Var_Input или Var_Output.
3. Тут разобрался.
Спасибо.

Еще пара вопросов:
Прошу подсказать, как поменять единицы измерения у стрелочного прибора в зависимости от выбора датчика: то есть нужно увидеть на шкале "Атм" при выборе давления и "°C" при выборе датчика температуры
87401

87402


И самый главный вопрос:
Не понимаю, что добавить в код, чтобы все работало для датчика 4-20мА. На данный момент получается, что все работает для датчика 0-20мА. То есть если ввести текущее значение 4мА, то стрелка уже выдает определенное значение, хотя предполагается, что она должна быть на нуле..

87403

Сам проект на всякий случай тоже приложил.
Спасибо.

https://drive.google.com/file/d/1Yl1NFKfAk0vKFABMAHD8WEjSNusgvmPS/view?usp=sharing

kondor3000
25.12.2025, 19:29
И самый главный вопрос:
Не понимаю, что добавить в код, чтобы все работало для датчика 4-20мА. На данный момент получается, что все работает для датчика 0-20мА. То есть если ввести текущее значение 4мА, то стрелка уже выдает определенное значение, хотя предполагается, что она должна быть на нуле..

Весь код Scale можно свести к одной строке и у вас не хватает пределов входа, 87404
тех самых 4 и 20 мА, можете внутри вписать или сделать внешними входами. Свои записи можете оставить или частично удалить
вот весь код

var // Поставить вначале программы
InMIN : real:=4 ; // предел Мин входа
InMAX : real:=20 ; // предел Макс входа
end_var

r_Result_Value :=(r_CurrentValue - InMIN) / (InMAX - InMIN) * (r_MaxValue - r_MinValue) + r_MinValue ; //Строка в конце программы

Точность в кружке поставьте 1 ( Параметр значения), тогда будут числа типа 25,6 а не 25,63458845634863086

Electric11183
25.12.2025, 20:30
Весь код Scale можно свести к одной строке и у вас не хватает пределов входа, 87404
тех самых 4 и 20 мА, можете внутри вписать или сделать внешними входами. Свои записи можете оставить или частично удалить
вот весь код

var // Поставить вначале программы
InMIN : real:=4 ; // предел Мин входа
InMAX : real:=20 ; // предел Макс входа
end_var

r_Result_Value :=(r_CurrentValue - InMIN) / (InMAX - InMIN) * (r_MaxValue - r_MinValue) + r_MinValue ; //Строка в конце программы

Точность в кружке поставьте 1 ( Параметр значения), тогда будут числа типа 25,6 а не 25,63458845634863086

Спасибо!!!
Я нихрена не понял, как у Вас получилось вывести эту формулу...Может она из каких-то стандартных математических. Но все работает четко.

По первому вопросу нет идей, как можно решить?

1exan
26.12.2025, 08:21
Спасибо!!!
Я нихрена не понял, как у Вас получилось вывести эту формулу...Может она из каких-то стандартных математических. Но все работает четко.

По первому вопросу нет идей, как можно решить?

Список Выбор привяжите какой-либо переменной (т.е. чтобы при изменении выбора в списке менялась эта переменная), а уже эту переменную привяжите к Параметру "Единицы" измерения (потребуется настроить конвертацию)

Electric11183
26.12.2025, 08:45
Список Выбор привяжите какой-либо переменной (т.е. чтобы при изменении выбора в списке менялась эта переменная), а уже эту переменную привяжите к Параметру "Единицы" измерения (потребуется настроить конвертацию)

Все получилось, спасибо большое.

Enigma
29.12.2025, 11:15
Здравствуйте. В MS4D есть возможность сохранить отчет и открыть папку с отчетами на компьютере клиента?