PDA

Просмотр полной версии : передача двойных слов



Дмитрий1404
26.08.2010, 16:13
Здравствуйте!
Задача следующая - передать переменную типа dword с ПЛК через kepserver "наверх" в интерфейс, написанный на delphi.
интересует, как прописать адрес в codesys (%QD10.1 ???) и как прописать адрес в opc server (404097 ?????)
или как разбить двойное слова на два обычных word???

Илья Кареткин
26.08.2010, 17:25
Если вопрос о передаче переменных в режиме ПЛК(Slave) в сторонний сервер, то какой протокол передачи данных этого сервера?
Если Modbus. то адрес который вы указали никак не связан с адресацией области ввода-вывода ПЛК.
Посмотрите описание и пример:
http://www.owen.ru/forum/showpost.php?p=7574&postcount=8
http://www.owen.ru/forum/showpost.php?p=15308&postcount=1
Так же есть документ на диске ПЛК PLC_Config там описана адресация Slave

Дмитрий1404
27.08.2010, 16:02
я добавляю переменные в Modbus (FIX).
вопрос состоит в том, что в программе на языке ST прописать
X1 AT %QD10: DWORD;
а в kepserver прописать
переменная X1 адрес 404097 тип dword
затем эта переменная цепляется к окошку в интерфейсе (написан на delphi).
c word все проходит, а вот с dword - нет:(

и в любом случае, напишите, как разбить на 2 слова, пожалуйста:o

Николаев Андрей
30.08.2010, 17:30
разбить на 2 слова можно делением на 65535 и сдвигом :)
а почему не правильно приходит - возможно стоит попробовать переставить слова в посылке местами.

Дмитрий1404
20.09.2010, 15:08
андрей, а вы не могли бы написать, как это в программе описать?

Николаев Андрей
21.09.2010, 15:44
a : dword;
b : word; (*старшее слово*)
с : word; (*младшее слово*)

b:=a\65536;
с:=a;

Ну или есть команды сдвига с вытеснением...