Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 20

Тема: Кнопка... или это не кнопка? Скрипт... или это не скрипт?

  1. #11
    Пользователь Аватар для dimioks
    Регистрация
    01.10.2016
    Адрес
    Самара
    Сообщений
    25

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    На какую ОРС переменную поступает значение при старте? Укажите путь к ней.
    Система.К1.OPC UA сервер1.MainPLC.Tags.B1.iReqMode
    Система.К1.OPC UA сервер1.MainPLC.Tags.B1.bPusk

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

    Система.К1.OPC UA сервер1.MainPLC.Tags.B2.iReqMode
    Система.К1.OPC UA сервер1.MainPLC.Tags.B2.bPusk

    Система.К1.OPC UA сервер1.MainPLC.Tags.B3.iReqMode
    Система.К1.OPC UA сервер1.MainPLC.Tags.B3.bPusk

    ... и т.д. вплоть до...

    Система.К1.OPC UA сервер1.MainPLC.Tags.С6.iReqMode
    Система.К1.OPC UA сервер1.MainPLC.Tags.С6.bPusk

    Выявлено в реальном режиме на объекте, со связью на PLC, подтверждено в режиме симуляции панельки Weintek.
    Последний раз редактировалось dimioks; 16.02.2026 в 21:46.

  2. #12

    По умолчанию

    Проверили, ни у одной, ни у другой переменной значение при старте не записывается.
    После старта в дереве системы что у вас у этих значений (см. скриншот) ?
    Изображения Изображения
    Спасибо.

  3. #13
    Пользователь Аватар для dimioks
    Регистрация
    01.10.2016
    Адрес
    Самара
    Сообщений
    25

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Проверили, ни у одной, ни у другой переменной значение при старте не записывается.
    После старта в дереве системы что у вас у этих значений (см. скриншот) ?
    Приеду с командировки - ещё раз посмотрю. Сейчас не могу.

    То, что пишется при старте - нет сомнений. Проверяется просто: на стороне сервера устанавливаются значения, отличные от дефолтных. Запускается Runtime. Значения сбрасываются в "0" и "false" во всех вышеуказанных тегах (это видно на сервере). Хотя никакой команды на выполнение интерфейсного метода "Write" клиента OPC при старте я не даю...

    Кстати, даже у Вас на скринах переменная "Значение1" =2. Это означает, как я писал выше, что скрипт при старте уже выполнился 2 раза. Теперь попробуйте запустить скрипт кнопкой на экране - и он уйдёт в бесконечную "рекурсию". В данном проекте это не имеет отношение к тому, что теги пишутся при старте, но такое поведение скрипта вызывает вопросы.
    Последний раз редактировалось dimioks; 18.02.2026 в 22:25.

  4. #14

    По умолчанию

    Цитата Сообщение от dimioks Посмотреть сообщение
    То, что пишется при старте - нет сомнений. Проверяется просто: на стороне сервера устанавливаются значения, отличные от дефолтных. Запускается Runtime. Значения сбрасываются в "0" и "false" во всех вышеуказанных тегах (это видно на сервере). Хотя никакой команды на выполнение интерфейсного метода "Write" клиента OPC при старте я не даю...
    У указанных вами переменных у значений стоят константы - выкл и 0. Конечно они запишут эти значения при старте.
    Изображения Изображения
    Спасибо.

  5. #15
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,210

    По умолчанию

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

  6. #16

    По умолчанию

    Нет. Здесь явная ошибка в проекте.
    Спасибо.

  7. #17
    Пользователь Аватар для dimioks
    Регистрация
    01.10.2016
    Адрес
    Самара
    Сообщений
    25

    По умолчанию

    См.выше:
    Цитата Сообщение от dimioks Посмотреть сообщение
    ЗЫ: Обновление: дело не в кнопке, а в переменных шаблона:
    Объект.Шаблоны.Ручное управления станками.iReqMode
    Объект.Шаблоны.Ручное управления станками.bPusk
    Скорее всего, дело в том, что в "значение" не могу установить периодический опрос. Доступны только константа и имитация.

    ЗЫ: Теперь в проекте в целом не могу поставить новое "Значение" с циклическим опросом. Что происходит??? Ключ активации работает, Runtime запускается...
    Пару дней назад "Значение" вставлялась с любыми вариантами опроса...

    Где тут собака порылась?
    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    У указанных вами переменных у значений стоят константы - выкл и 0. Конечно они запишут эти значения при старте.
    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Нет. Здесь явная ошибка в проекте.
    Я про опрос уже писал!!!
    Повторяю: я не могу выставить в переменной значение опроса "Периодический", доступно только "Константа" и "Имитация". "Периодический" - затемнено и недоступно для выбора.

    Теперь я вообще не могу вставить любое "Значение" с опросом "Периодический" во всём проекте!!!
    Может где есть настройка в проекте какая?

    ************************************************** **

    Второй вопрос по работе скрипта я уже задавал:
    Цитата Сообщение от dimioks Посмотреть сообщение
    Ссылка на проект:
    https://mega.nz/file/c18wzZrC#RC_ooU...5H-yWWuA35-rKM

    Спасибо за ответ! Умом я понимаю, что так не должно быть. Но по факту...
    Пример скрипта:
    public partial class ФБ : ScriptBase
    {
    int iTemp_1 = 0;
    public override void Execute()
    {
    iTemp_1 = iTemp_1 + 1;
    iCount = iTemp_1;
    }
    }

    , где: iCount - выходной параметр, аналог. Если в Runtime с помощью команды изменить значение входа скрипта, то получается бесконечная рекурсия какая то...
    Настройки скрипта: опрос по изменению входов.
    bIn1 - цифровой вход, предназначен только для пуска скрипта.

    Путь к проблемному скрипту:
    Объект -> MainForm -> Управление В1 - > № картинки и другое v2
    Скрипт запускается командой Объект -> MainForm -> Управление В1 - > Скрипт (временно в виде кнопки на главном экране). При старте скрипт срабатывает 2 раза. В Runtime при запуске с кнопки "Скрипт" уходит в бесконечную рекурсию.
    При старте проекта скрипт выполняется 2 раза. Я это вижу даже у вас на скриншоте.
    При работе проекта, на главном экране при запуске с кнопки "Скрипт" уходит в бесконечную рекурсию.

  8. #18

    По умолчанию

    Цитата Сообщение от dimioks Посмотреть сообщение
    я не могу выставить в переменной значение опроса "Периодический"
    Потому что у этой переменной нет входной связи.

    Что вы в конечном счете хотите сделать? Опишите изначальную задачу.
    Спасибо.

  9. #19
    Пользователь Аватар для dimioks
    Регистрация
    01.10.2016
    Адрес
    Самара
    Сообщений
    25

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Потому что у этой переменной нет входной связи.
    Это... Шаблон!!! Какие могут быть "связи" у локальной переменной в шаблоне???
    Мне что, кинуть "связь" в шаблоне с какой-нибудь временной переменной только для того, чтобы настроить опрос локальной переменной шаблона???

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Что вы в конечном счете хотите сделать? Опишите изначальную задачу.
    1. Мне нужна кнопка в шаблоне, которая одновременно(асинхронно с небольшой разницей по времени) установит значения 2-х тегов (Only Write) по клику ЛКМ.
    2. Решить вопрос со скриптом. Где моя ошибка. Такая работа скрипта - абсолютно неадекватная, невозможная в принципе ни на какой SCADa.

  10. #20

    По умолчанию

    1. Замените значения на команды. У команды должно быть выключено значение до опроса и восстановление при рестарте. На эти команды точно также через действия записывайте значения.
    2. Вам нужно изменить код скрипта. Как мы понимаем, вам нужно чтобы код выполнялся по переднему фронту входа bIn1. Исправьте код на:
    int iTemp_1 = 0;
    bool? M=false;
    public override void Execute()
    {
    if (bIn1==true && M==false)
    {
    //int iTemp_1 = 0;
    //iNum = 2;
    //bAlarm = true;
    iTemp_1 = iTemp_1 + 1;
    iCount = iTemp_1;
    //bRun = false;

    /*if (bAlarm == true) {iNum = 2;}
    else {if (bRun == true) {iNum = 1;} else {iNum = 0;};
    };*/
    //bNotAlarm = !bAlarm;
    }
    M=bIn1;

    }
    Спасибо.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Отчёт+скрипт
    от mars_atakuet в разделе Телемеханика ЛАЙТ
    Ответов: 0
    Последнее сообщение: 06.05.2025, 15:38
  2. Скрипт
    от BSA в разделе Master SCADA 3
    Ответов: 26
    Последнее сообщение: 04.04.2019, 13:23
  3. Python скрипт
    от @ND в разделе СПК1xx (архив)
    Ответов: 0
    Последнее сообщение: 13.08.2015, 07:04
  4. С-скрипт документация
    от Falvik в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 18.03.2014, 10:56
  5. скрипт для МастерСкада
    от yurgin_777 в разделе Помощь Разработчикам
    Ответов: 17
    Последнее сообщение: 06.12.2012, 18:41

Ваши права

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