EasyBuilder - Скорая помощь новичкам

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Microl » 23 май 2022, 10:09

Подскажите пожалуйста как корректно отображать значение на панели MT8090XE. Считываю с устройства параметр (объем м куб).
Информация по протоколу с мануала устройства (тепловычислитель ВКТ-9):
Изображение
Адрес параметра:
Изображение
На экране устройства отображается: 000000160.204
Значение на сканере:
Изображение
Считываю на панели, целая часть: 3x_Double 155, формат чисел 32-bit Unsigned
дробная часть: 3x_Double 157, формат чисел 32-bit Float
Отображается: 10485760 дробная часть -0
Microl
 
Сообщения: 7
Зарегистрирован: 15 мар 2021, 11:01

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Microl » 24 май 2022, 17:14

Microl писал(а):Подскажите пожалуйста как корректно отображать значение на панели MT8090XE. Считываю с устройства параметр (объем м куб).
Информация по протоколу с мануала устройства (тепловычислитель ВКТ-9):
Изображение
Адрес параметра:
Изображение
На экране устройства отображается: 000000160.204
Значение на сканере:
Изображение
Считываю на панели, целая часть: 3x_Double 155, формат чисел 32-bit Unsigned
дробная часть: 3x_Double 157, формат чисел 32-bit Float
Отображается: 10485760 дробная часть -0


Разобрался, вопрос снят.
Microl
 
Сообщения: 7
Зарегистрирован: 15 мар 2021, 11:01

Re: EasyBuilder - Скорая помощь новичкам

Сообщение 8bit » 24 май 2022, 17:48

Microl писал(а):
Разобрался, вопрос снят.


поделитесь с окружающими как все-таки с этим ВКТ-9 общаться ?
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1103
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder - Скорая помощь новичкам

Сообщение ArtemPM » 31 май 2022, 18:03

8bit писал(а):поделитесь с окружающими как все-таки с этим ВКТ-9 общаться ?

Тут без скрипта не обойдешься:
Первое число формата 32 bit unsigned берется по адресу 30155 и равняется 160
Второе число 32 bit float берется по адресу 30157 и получается 0,204. Там просто не 3x_double нужно брать, достаточно 4x, в крайнем случае 5х. Нужно посмотреть кто как вертит слова в запросе.
Дальше эти два числа нужно сложить и сумму записать либо во float 64, если позволяет панель, либо во float 32 рискуя не уложиться в размерности при огромной целой части, но это вряд ли. Ни когда еще не видел счетчиков, где для показаний нужно 32 bit unsigned.
4 294 967 295 м³ - представляете такой объем.
ArtemPM
 
Сообщения: 193
Зарегистрирован: 14 апр 2021, 05:16

Re: EasyBuilder - Скорая помощь новичкам

Сообщение pinguin007 » 01 июн 2022, 15:08

Можно ли сделать отрицательную гистограмму ?
pinguin007
 
Сообщения: 16
Зарегистрирован: 05 ноя 2020, 09:54

Re: EasyBuilder - Скорая помощь новичкам

Сообщение 8bit » 01 июн 2022, 15:22

pinguin007 писал(а):Можно ли сделать отрицательную гистограмму ?

что это ?
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1103
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder - Скорая помощь новичкам

Сообщение pinguin007 » 01 июн 2022, 15:49

8bit писал(а):
pinguin007 писал(а):Можно ли сделать отрицательную гистограмму ?

что это ?

Bar graph от 0 до -2
pinguin007
 
Сообщения: 16
Зарегистрирован: 05 ноя 2020, 09:54

Re: EasyBuilder - Скорая помощь новичкам

Сообщение pkl58 » 01 июн 2022, 17:19

Можно. Выберите тип данных Signed.
pkl58
 
Сообщения: 35
Зарегистрирован: 25 окт 2016, 08:55

Re: EasyBuilder - Скорая помощь новичкам

Сообщение rv9can » 08 июн 2022, 13:26

Добрый день, может кто подсказать, второй день мучаюсь, почему при опросе оборудования с помощью Free protocol если данные в ответе меньше чем 256, то на экране выводится число 655**, а если больше то все нормально, если меняю тип цифрового окна на hex, вижу что если число меньше 256 то HI_bit данный почему то становится 0xFF, а если число больше 256, например 275 0х0113.
Прикладываю код:
Код: Выделить всё
sub short read_device(short address_in, short func_code, short address_station, short data = 0)                  // Подфункция для опроса
   FILL(command[0], 0, 32)
   FILL(response[0], 0, 32)
   short read_data[2]  = {0}   
   command[0] = address_station
   command[1] = func_code
   address = address_in
   HIBYTE(0x00, command[2])
   LOBYTE(address, command[3])
   read_no = 1
   HIBYTE(0x00, command[4])
   LOBYTE(read_no, command[5])
   CRC(command[0], checksum, 6)
   LOBYTE(checksum, command[6])
   HIBYTE(checksum, command[7])
   OUTPORT(command[0], "Modbus RTU device", 8)
   INPORT(response[0], "Modbus RTU device", 9, return_value)
   if(return_value > 0) then
      read_data[0] = response[4] + (response[3] << 8)
      read_data[1] = response[6] + (response[5] << 8)
   end if
   SetDataEx(read_data[0], "Local HMI", RW, 20, 2)
   return data, read_data[0], read_data[1]
end sub
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

Re: EasyBuilder - Скорая помощь новичкам

Сообщение rv9can » 08 июн 2022, 16:13

rv9can писал(а):Добрый день, может кто подсказать, второй день мучаюсь, почему при опросе оборудования с помощью Free protocol если данные в ответе меньше чем 256, то на экране выводится число 655**, а если больше то все нормально, если меняю тип цифрового окна на hex, вижу что если число меньше 256 то HI_bit данный почему то становится 0xFF, а если число больше 256, например 275 0х0113.
Прикладываю код:
Код: Выделить всё
sub short read_device(short address_in, short func_code, short address_station, short data = 0)                  // Подфункция для опроса
   FILL(command[0], 0, 32)
   FILL(response[0], 0, 32)
   short read_data[2]  = {0}   
   command[0] = address_station
   command[1] = func_code
   address = address_in
   HIBYTE(0x00, command[2])
   LOBYTE(address, command[3])
   read_no = 1
   HIBYTE(0x00, command[4])
   LOBYTE(read_no, command[5])
   CRC(command[0], checksum, 6)
   LOBYTE(checksum, command[6])
   HIBYTE(checksum, command[7])
   OUTPORT(command[0], "Modbus RTU device", 8)
   INPORT(response[0], "Modbus RTU device", 9, return_value)
   if(return_value > 0) then
      read_data[0] = response[4] + (response[3] << 8)
      read_data[1] = response[6] + (response[5] << 8)
   end if
   SetDataEx(read_data[0], "Local HMI", RW, 20, 2)
   return data, read_data[0], read_data[1]
end sub

Вопрос закрыт
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

Пред.След.

Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 2