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

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

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

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

Сообщение 8bit » 19 май 2022, 15:34

rv9can писал(а):Добрый день, может кто подскажет готовый код перевода из DEC в Hex, никак не могу сделать

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

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

Сообщение rv9can » 19 май 2022, 16:04

Вводи на панели число в десятичном формате, например 2300, на выходе хочу иметь массив из двух элементов, 0x08 и 0хFC, а дальше хочу отправлять через free protocol
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

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

Сообщение 8bit » 19 май 2022, 16:33

rv9can писал(а):на выходе хочу иметь массив из двух элементов, 0x08 и 0хFC, а дальше хочу отправлять через free protocol

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

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

Сообщение rv9can » 19 май 2022, 16:34

8bit писал(а):
rv9can писал(а):на выходе хочу иметь массив из двух элементов, 0x08 и 0хFC, а дальше хочу отправлять через free protocol

полагаете free protocol различает десятичное представление числа и шестнадцетиричное ?

В любом случае, мне нужно как-то отправлять данные, пробовал напрямую отправить, получал только FC, если можно без перевода буду только рад

Что написать за место data?

Код: Выделить всё
sub  write_device(short address_in, short func_code, short address_station, short data, short value_data )      // Подфункция для записи
   FILL(command[0], 0, 32)
   command[0] = address_station
   command[1] = func_code
   address = address_in
   HIBYTE(0x00, command[2])
   LOBYTE(address, command[3])
   command[4] = data
   command[5] = data
   CRC(command[0], checksum, 6)
   LOBYTE(checksum, command[6])
   HIBYTE(checksum, command[7])
   OUTPORT(command[0], "Modbus RTU device", 8)   
end sub
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

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

Сообщение 8bit » 19 май 2022, 16:41

rv9can писал(а):
8bit писал(а):
rv9can писал(а):на выходе хочу иметь массив из двух элементов, 0x08 и 0хFC, а дальше хочу отправлять через free protocol

полагаете free protocol различает десятичное представление числа и шестнадцетиричное ?

В любом случае, мне нужно как-то отправлять данные, пробовал напрямую отправить, получал только FC, если можно без перевода буду только рад


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

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

Сообщение rv9can » 19 май 2022, 16:47

посмотрите в документации про функцию INPORT - там в примере Modbus реализован[/quote]

Только там реализация с данными которые вписаны в функцию, а мне нужно чтоб, например, если я хочу отправить 2300, первый бит данных был 0х08, а второй 0хFC, и если пользовать введет другое число оно так же переводилось в 16ную сс и делилось на два бита для отправки
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

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

Сообщение 8bit » 19 май 2022, 16:50

rv9can писал(а):Только там реализация с данными которые вписаны в функцию, а мне нужно чтоб, например, если я хочу отправить 2300, первый бит данных был 0х08, а второй 0хFC, и если пользовать введет другое число оно так же переводилось в 16ную сс и делилось на два бита для отправки


смотрите функции SWAPW , LOBYTE , HIBYTE, LOWORD, HIWORD
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1103
Зарегистрирован: 20 апр 2020, 19:07

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

Сообщение rv9can » 19 май 2022, 16:59

8bit писал(а):
rv9can писал(а):Только там реализация с данными которые вписаны в функцию, а мне нужно чтоб, например, если я хочу отправить 2300, первый бит данных был 0х08, а второй 0хFC, и если пользовать введет другое число оно так же переводилось в 16ную сс и делилось на два бита для отправки


смотрите функции SWAPW , LOBYTE , HIBYTE, LOWORD, HIWORD


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

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

Сообщение dimensy » 19 май 2022, 17:16

удалено
dimensy
 
Сообщения: 140
Зарегистрирован: 14 мар 2018, 17:54

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

Сообщение rv9can » 23 май 2022, 08:59

Добрый день, пытаюсь прочитать данные с устройства с помощью free protocol, и не могу понять как мне сделать один регистр данных, а не массивом как в мануале,
Код: Выделить всё
sub short read_device(short address_in, short func_code, short address_station, short data)                  // Подфункция для опроса
   FILL(command[0], 0, 32)
   FILL(response[0], 0, 32)
   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
   return read_data[0], read_data[1], data
end sub

Как объединить read_data[0] и read_data[1] в один регистр?


!! Используйте кнопку [Code] над окно ввода сообщения для подсветки синтаксиса макроса. Admin
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

Пред.След.

Вернуться в Weintek

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5