Показать сообщение отдельно
Старый 25.07.2008, 14:40   #165
gtfox
Новичок
 
Регистрация: Dec 2007
Сообщения: 28
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Red face Ответ: Диспетчеризация, OPC-сервер и modbus

Начнем по порядку

Функция 02
В запросе можно указать кол-во бит, которые хотим прочитать, например 22 бита=0016h с адреса 10197d => первая еденица - указывает на диапазон Input Status, т.к адресация с нуля, то 0197d-1d=196d=00С4h
Запрос:
А_Ф_Адрес перемен_ Кол-во перем._CRC
01_02_00 C4_00 16_xx xx
Ответ придет:
А_Ф_Число байт_Сост. входов_CRC
01_02_03_AC BD 35_xx xx
причем AC - для входов 10204-10197, 35 - для входов 10218-10213

1) В лоджике единственный тип использующий функцию 02 это boolean, направление R(in), которым не получается организовать чтение нескольких Input Status. Логично было бы сделать выбор типа переменной лиш для указания размера принимаемых данных и отдельно выбор функции, которая будет реализовывать чтение/запись. Т.е. тип
integer и функция 02 => прочитает 16 бит и положит их в переменную, или тип long и функция 02 => прочитает 32 бита и положит их в переменную.
Примерно так сделано в CoDeSys(см. рисунок)
Конечно идиальный вариант был бы с возможностью ручного указания числа читаемых битов
Можно извратиться, и прочитать N битов создав N блоков boolean R(in) с нужными адресами, но при этом "скорость передачи" одного "пакета битов" упадет в N раз...
2) Про функцию 04 можно сказать то же самое... По идее возможность указания кол-ва регистров предусмотрена протоколом, но не реализована.

3)
Цитата:
В общем случае адреса у регистров и статусов не пересекаются, т.е. чтение функцией 01h с адреса 0000h даст один результат, чтение ф-цией 02h с адреса 0000h даст другой результат, ф-ция 03h даст третий результат, ф-ция 04h - четвёртый.
Если выполнить такой запрос к SMH/Pixel, то, возможно мы что-то и получим, но не то что надо. Я так понял такие запросы относятся только к устройствам с диапазонной адресацией, а в SMH/Pixel
3800-37FF - Input Status
3C00-4000 - Coil Status
A000-A3FF - Input Reg
A400-A800 - Holding Reg

4)В документации на LanDrive явно не указан тип адресации, и я не уверен в достоверности информации указанной в ней. Функция 05 уже явно не подходит по формату, а вот чтение "ИК пакета" из модуля LD-IR может быть осуществлена и при помощи функции 02 (при явном указании кол-ва бит в запросе), и при помощи функции 04 (при условии, что в документации очередная ошибка)
Вобщем надо покупать эти устройства, брать Лектус и отправлять строку запроса в явном виде
Цитата:
Я бы не спешил делать вывод, что под словом "пакет" подразумевается именно байт, а не последовательность битов.
Вот тут есть инфа по кодировке сигналов пультов. Не знаю когда передается то что в начале, но сам код клавиши 2 байта.
Вобщем без эксперементов не обойтись
Большое спасибо за потраченное, на меня, время!
Цитата:
#
# this config file was automatically generated
# using lirc-0.8.0(serial) on Tue Oct 31 00:16:39 2006
#
# contributed by Dusan Milovanovic, Serbia
#
# brand: LG LG
# model no. of remote control: 6710CDAL01G
# devices being controlled by this remote: DVD HT
#

begin remote

name LG_6710CDAL01G
bits 16
flags SPACE_ENC|CONST_LENGTH|REPEAT_HEADER
eps 30
aeps 100

header 4552 4534
one 563 1681
zero 563 559
ptrail 545
repeat 531 1710
pre_data_bits 16
pre_data 0x3434
gap 108234
toggle_bit 0


begin codes
power ________0x7887
open-close________0x59A6
cd-dvd ________0xC03F
band ________0x9A65
aux ________0x906F
1 ________0x827D
2 ________0x42BD
3 ________0xC23D
4 ________0x22DD
5 ________0xA25D
6 ________0x629D
7 ________0xE21D
8 ________0x12ED
9 ________0x926D
0 ________0xD22D
sleep ________0x43BC
audio ________0x05FA
sound ________0x857A
s-title ________0xD52A
return ________0x45BA
setup ________0xA55A
display ________0xC53A
menu ________0x25DA
title ________0xF50A
up ________0xE51A
down ________0x659A
left ________0x15EA
right ________0x956A
enter ________0x55AA
plus ________0xC837
minus ________0x48B7
<< ________0x8D72
>> ________0x4DB2
volume+ ________0xE817
volume- ________0x6897
<<< ________0x609F
>>> ________0xE01F
stop ________0xA05F
pause ________0xF20D
play ________0x20DF
mute ________0xF807
program ________0xB24D
clear ________0x0DF2
repeat ________0x728D
repeata-b ________0xB54A
marker ________0x2DD2
search ________0xCD32
angle ________0x35CA
zoom ________0x758A
rds ________0x06F9
pty ________0x8E71
pty-search________0x9C63
dimmer ________0x7A85
end codes

end remote
Изображения
Тип файла: png Codesys.PNG (34.2 Кбайт, 185 просмотров)
gtfox вне форума   Ответить с цитированием