Ответы в темах
-
АвторЗаписи
-
ViktorDV
УчастникОт графических кнопок передается команда и значение без проблем! Всем спасибо! Меня интересует формат команды для написания формулы в каналах управления, что бы при нажатии на кнопку не вводить ни значения ни пароля…
ViktorDV
УчастникВсем доброе утро! Управление запустил. Вот только формулу передачи ну ни как не воспринимает. Подскажите как правильно передать значение 65280
ViktorDV
УчастникВключение произошло при значении 1. Команда стандартная с коммуникатора. Это странно Отключение не работает. Значит команда проходит в блок. Даже не ожидал такого подвоха.
ViktorDV
УчастникДа с коммуникатора отправил команду и так и этак…Ни в какую. Работаю в сети заводской. К админу обратился….
ViktorDV
УчастникДоброе утро всем!!! В блок необходимо передать значение 0xFFKK — где КК — код пароля блока. А поскольку пароля в блоке нет, то вместо КК 00. Соответственно в блок при нажатии на кнопку «Включение» должно передаться значение FF00Н (65280). При поступлении в блок значения 65280 блоком выдается команда на оперативное включение. С таким же значением поступает команда по другому каналу при нажатии на другую кнопку «Отключение». В блоке происходит выполнение команды на отключение. Вроде бы все просто, ан нет…. Где то что то не так просто. Хотя при работе с контроллером VIPA-225 прошло все как по маслу…Но то как говорится было давно и не правда….
ViktorDV
УчастникСистему еще не администрировал. 0xFF00 — пароля на блоках нет. Разрешение управлять включением от АСУ есть. Со стороны блоков никаких ограничений.
ViktorDV
УчастникВ Скаде работаю от имени Админа
ViktorDV
УчастникДоброе время суток!!!!
В железках по протоколу Modbus действительно может быть все что завгодно. 6 блоков управления и защит и все разное до резкой противоположности. Доходит дело даже до абсурда. Да разве только это…На одном из блоков читаю содержание регистров, а параметров и близко то нет. В документации одно, а на самом деле другое…
Но дело как раз и в том что не которые блоки по протоколу Modbus не хотят включатся…. Бьюсь битый час а запустить от кнопки ни в какую. Может чего то неправильно сделал в скаде…. Может в формуле…. В чем может быть причина и на что необходимо обратить внимание? Если нетрудно прошу алгоритм действия. То есть опишите всю последовательность формирование этой команды. За ранее благодарю! Самое интересное на первом этапе проектирования кнопка включение работала даже без передачи значения канала 0xFF00. После завершения проекта та же кнопка перестала работать. Блок ее явно не видит…ViktorDV
УчастникВсем доброе время суток!
Делюсь очередной формулой — Определение старшего байта из целого числаpublic double HighByte(double NumbeReg)
{
int x;
x = (int)NumbeReg;
byte HighByte = (byte)(x >> 8); ///старший байт
return HighByte;
}Определение младшего байта из целого числа
public double LowByte(double NumbeReg)
{
int x;
x = (int)NumbeReg;
byte LowByte = (byte)(x & 0xFF); ///младший байт
return LowByte;
}Удачи всем!
Михаил, а Вам за скаду спасибо! С нетерпением жду клонирование в схематике. Много скрипта подключается на шарпе! Делать можно что только пожелаешь!!!!ViktorDV
УчастникПоместить необходимо в справочники/формулы, во входнойм до расчетном канале написать — TokNom (Val(125)) — где 125 номер канала и поставить галочку использовать формулу. Удачи всем!!!
ViktorDV
УчастникВсем спасибо!!!!
ViktorDV
УчастникВсе работает. Скрипт создан шарпой. Текст привожу. Переменная в оглавлении должна быть double!!! Это важно!!!
public double TokNom(double InomCod)
{
int[] InomCodes = new int[]
32,63,80,100,125,150,160,200,250,315,400,500,630,750,800,1000,1250,1500};
int x;
x = (int)InomCod;
return InomCodes[x];
}Вдруг кому то пригодится работать с индексами массивов. Пользуйтесь на здоровье!!!!
Вместо
return InomCodes[x];
написал
return InomCodes[(int)InomCod];
увы, скада не работает.ViktorDV
УчастникЗапустить формулу так и не смог. Скада ее не воспринимает
ViktorDV
Участникpublic double TokNom(InomCod)
{
int InomCodes[18] = {32, 63, 80, 100, 125, 150, 160, 200, 250, 315, 400, 500, 630, 750, 800, 1000, 1250, 1500};
InomAut = InomCodes[InomCod];
return InomAut;
}
При передаче в вебсервер формула не компилируется и естественно не работает. Ругается. Канал создан до расчетным.Если галочки в колонке использовать формулу нет, при «исправной» формуле компиляция то должна все равно быть. Ан нет.ViktorDV
УчастникСоздал формулу
public double TokNom(InomCod)
{
int InomCodes[18] = {32, 63, 80, 100, 125, 150, 160, 200, 250, 315, 400, 500, 630, 750, 800, 1000, 1250, 1500};
InomAut = InomCodes[InomCod];
return;
}
Значение InomCod может быть от 0 до 17
Из массива InomCodes под идексом InomCod переменной InomAut присвоить значение массива и передать в канал для передачи на вебсервер.Сервер ругается. Что не так? Подскажите пожалуйста
-
АвторЗаписи