Ответы в темах
-
АвторСообщения
-
phenix769УчастникВсем участникам выражаю огромное Спасибо за подсказки. И огромное спасибо Модератору за решения этой задачи НАИБОЛЕЕ ПРОСТЫМ СПОСОБОМ.
phenix769УчастникЗначение@Метка_времени — Все верно.
phenix769УчастникЭто то что с правой стороны после @. @ — (коммерческое at) и значением всемирного кодированного времени UTC в виде текстового представления целого числа – значения количества миллисекунд, прошедших с 00:00:00 1 января 1970 года.
phenix769УчастникЯ столкнулся что много чего не работает , по этому написал по самому простому как мог.
phenix769Участникlet data = payload;
log(‘Значения пришли >’ + data );let data1 = 0;
let a = 0;
let i = 15; // ИЗМЕНИТЬ i = (8-бит(заменить на 7), 16-бит(заменить на 15)
while (i > 0 )
{
a = 0;
if (data — Math.pow(2, i) >= 0 )
{
data = data — Math.pow(2, i) ;
a = 1;
data1 = data1 + Math.pow(10, i) ;
}
log(‘setValue(item,бит >’+ i +’ значения >’+ a + ‘ )’);
setValue(i, a); // формирование от 15-бита до 1-бита и запись в канал.
i = i — 1;
}
a = 0;
if (data — 1 >= 0 )
{
data = data — 1 ;
a = 1;
data1 = data1 + 1;
}
log(‘setValue(item,бит >’+ i +’ значения >’+ a + ‘ )’);
setValue(i, a); // формирование 0-бита и запись в канал.
log(‘Значения преобразованы в бит >’ + data1 );// Раскладываем число на биты на нужное количество.
// Создаём дополнительно item по количеству нужных вам бит.
// В журнале смотрим изменения .-
Ответ изменён 1 год, 7 месяцев назад пользователем
phenix769.
phenix769Участникlet data = payload;
if (‘@’ == payload[1])
{ data = payload[0] ;
log(‘Значения пришли >’ + data ) ; }if (‘@’ == payload[2])
{ data = payload[0] + payload[1] ;
log(‘Значения пришли >’ + data ) ; }if (‘@’ == payload[3])
{ data = payload[0] + payload[1] + payload[2] ;
log(‘Значения пришли >’ + data ) ; }if (‘@’ == payload[4])
{ data = payload[0] + payload[1] + payload[2] + payload[3] ;
log(‘Значения пришли >’ + data ) ; }if (‘@’ == payload[5])
{ data = payload[0] + payload[1] + payload[2] + payload[3] + payload[4] ;
log(‘Значения пришли >’ + data ) ; }log(‘Значения преобразованы до пяти знаков до @>’ + data );
// Преобразование с 1@424242209, 12@424242209, 123@424242209, 1234@424242209,
// 12345@424242209 в 1, 12, 123, 1234, 112345.
// Третий вариант — не рабочий !.
phenix769УчастникТолько запятые меняем на двойные.
-
Ответ изменён 1 год, 7 месяцев назад пользователем
phenix769.
phenix769УчастникЗадача передать первое значения до @. из 2@1729596485400.(в данном случае это 2)
Это рабочий вариант.let data1 = payload[0];
log(‘Значения пришли >’ + payload);if (‘1’ == data1)
{
let data = 1;
log(‘Истина >’ + data );
setValue(0, 1);
} elseif (‘2’ == data1)
{
let data = 2;
log(‘Истина >’ + data );
setValue(0, 2);
} elseif (‘3’ == data1)
{
let data = 3;
log(‘Истина >’ + data );
setValue(0, 3);
}else {
let data = 0;
log(‘Лож >’ + data );
setValue(0, 0);
}
phenix769УчастникУщё раз, кавычки исправил .
let data1 = payload;
log(‘Значения пришли >’ + payload);
if (‘ON’ == data1) {
let data = 1;
log(‘Истина >’ + data );
setValue(0, 1);
} else {
let data = 0;
log(‘Лож >’ + data );
setValue(0, 0);
}
phenix769УчастникМне проще сравнить значения и присвоить свои данные на выход. Завтра буду с этим 2@1729596485400. Нужно хвост отпилить и оставить значения >2 . Завтра и в биты перевод попробую .
-
Ответ изменён 1 год, 7 месяцев назад пользователем
phenix769.
phenix769УчастникЭто скрипт на ON и OFF. Создаём одно значения в таблице item1(Смотрите видео: Rapid SCADA 6. Урок 14. Настройка MQTT-клиента)
let data1 = payload;
log(«Значения пришли >» + payload);
if (‘ON’ == data1) {
let data = 1;
log(«Истина >» + data );
setValue(0, 1);
} else {
let data = 0;
log(«Лож >» + data );
setValue(0, 0);
}
phenix769УчастникТут речь идёт за бесплатный.
phenix769УчастникСделают.
phenix769УчастникТак много оборудования в последнее время на него делают. Есть бесплатно прокладка для тестирования на 32 канала у Мастер Скады, OPC<>МЭК-104 под виндовс. Надеюсь МЭК-104 сделаю для Rapid SCADA .
-
Ответ изменён 1 год, 7 месяцев назад пользователем
-
АвторСообщения