PDA

Просмотр полной версии : Передача DWORD в панель СП270



IIeroniux
25.11.2013, 19:11
День добрый! Имеется ПЛК 160 и СП 270.
Не удается реализовать передачу значения типа DWORD на панель (компонент - цифровой индикатор). WORD передается без проблем, а вот с DWORD не могу сообразить. Переменная 4 byte передает правильное значение с ПЛК, а цифровой индикатор отображает не более максимального значения WORD.
Как решить проблему, где не прав?

http://s2.ipicture.ru/uploads/20131125/thumbs/7gRVkp3x.jpg (http://s2.ipicture.ru/Gallery/Viewfull/34083344.html)

Flicker
26.11.2013, 10:22
А почему регистр 4х, а не 3х? Нужно выполнить выравнивание переменных: Адрес 4-байтной переменной должен быть кратен 4, 2-байтной –кратен 2, а однобайтной (или 8 бит) – кратен 1 и может находиться в любой точке пространства памяти.

IIeroniux
26.11.2013, 10:49
Я очень начинающий пользователь панели СП270 и контроллеров ОВЕН. Подскажите, как выполнить выравнивание переменных?

Трофимов Артем
26.11.2013, 10:55
может загвоздка кроется в том, что у Вас стоит 7 знаков, выводимых на дисплее?

petera
26.11.2013, 11:28
День добрый! Имеется ПЛК 160 и СП 270.
Не удается реализовать передачу значения типа DWORD на панель (компонент - цифровой индикатор). WORD передается без проблем, а вот с DWORD не могу сообразить. Переменная 4 byte передает правильное значение с ПЛК, а цифровой индикатор отображает не более максимального значения WORD.
Как решить проблему, где не прав?

http://s2.ipicture.ru/uploads/20131125/thumbs/7gRVkp3x.jpg (http://s2.ipicture.ru/Gallery/Viewfull/34083344.html)
1. Установите галку "Поменять Word"
10853
На скорость, указанную на картинке, не обращайте внимание, задавайте ту, какая задана в ПЛК.
2. Адрес регистра для дисплея должен быть "2", а не "1"
10854
И будет Вам счастье.:)

Пояснение к п.2
10855 10856

petera
26.11.2013, 12:53
В модуле Modbus(Slave) ПЛК нет таких настроек, по этому именно в настройках порта панели нужно поменять Word.
Вот что будет если этого не сделать.
10857 10858
Здесь, как и в моем посте #5 приведены результаты работы реального ПЛК с симулятором панели.
Хорошо видно, что если порядок Word не поменять, то показания будут не правильными.
Ну и естественно для дисплея должен быть указан регистр 4х2.

IIeroniux
26.11.2013, 13:09
Petera, огромное спасибо!!! Все получилось. Скажите, а где можно подробно почитать про регистры и их обозначения? До этого я считал, что два первых восьмибитника это регистр 0х-0, а двухбайтники - это 4х-0, ну и далее по возрастанию. РЭ на панель читал, но там уж очень непонятно написано, в голове каша.

petera
26.11.2013, 13:22
Petera, огромное спасибо!!! Все получилось. Скажите, а где можно подробно почитать про регистры и их обозначения? До этого я считал, что два первых восьмибитника это регистр 0х-0, а двухбайтники - это 4х-0, ну и далее по возрастанию. РЭ на панель читал, но там уж очень непонятно написано, в голове каша.
10859
У ПЛК овен общее адресное пространство и для регистров(4х,3х) и для битов(0х, 1х).
Это можно наглядно увидеть на картинке и использовать ее для определения адресов.

IIeroniux
26.11.2013, 13:53
К примеру, 8 bits, расположенных по адресу памяти внутри ПЛК 0х0004, bit 3 как правильно настроить для элемента 'кнопка'? Не могу понять. 0х - ... а как дальше считать?

petera
26.11.2013, 14:22
К примеру, 8 bits, расположенных по адресу памяти внутри ПЛК 0х0004, bit 3 как правильно настроить для элемента 'кнопка'? Не могу понять. 0х - ... а как дальше считать?
Смотрим на картинку
Адресу 0х0004 в памяти ПЛК соответствуют биты 32...39, адрес бита 3 элемента 8bits будет 0х35

IIeroniux
26.11.2013, 15:18
Этот пример понятен. А почему в вашем примере по разбору моей задачи напротив двух восьмибитников вы написали 4х0? Ведь это 4 не имеет ничего общего с регистром 4х, предназначенного для обращения к двухбайтникам? В каком случае используется 3х регистр и обращение 1х к битам для управления кнопками?
Двухбитниов по адресу 0х0002(3) может быть же больше одного, а как вычисляются остальные адреса? Хочется понять, в том числе и мой пример, а не просто переписать без понимания. С

petera
26.11.2013, 16:17
Этот пример понятен. А почему в вашем примере по разбору моей задачи напротив двух восьмибитников вы написали 4х0? Ведь это 4 не имеет ничего общего с регистром 4х, предназначенного для обращения к двухбайтникам? В каком случае используется 3х регистр и обращение 1х к битам для управления кнопками?
Двухбитниов по адресу 0х0002(3) может быть же больше одного, а как вычисляются остальные адреса? Хочется понять, в том числе и мой пример, а не просто переписать без понимания. С
Потому, что в примере по разбору Вашей задачи нужно было определить правильный адрес регистра для цифрового дисплея -4х2. И то, что до нужного регистра были элементы, называемые 8bits, 8bits, 2 byte в данном случае не имеет значения, а имеет значение сколько регистров Modbus они занимают.
Забудьте про "дувухбайтники". Для Modbus существуют только 16-ти битные регистры и битовые переменные и только они!
Таким образом два элемента 8bits занимают один регистр -0х00, 2 byte занимает один регистр 0х01, следующий регистр 0х02.
10862
Из этого следует, что для этих переменных в ПЛК
10867
я мог бы сделать так
10863 10864

А мог бы и так
10865 10866

petera
26.11.2013, 16:42
Регистры и битовые переменные Modbus в ПЛК овен занимают одну и ту же память, т.е можно обращаться к отдельным битам элементов 8bits, 2byte, 4byte используя битовую адресацию.
10868
И на оборот можно обратится двум расположенным подряд 8bits как к одному регистру 4х

petera
26.11.2013, 17:03
В каком случае используется 3х регистр и обращение 1х к битам для управления кнопками?

Для ПЛК овен не имеет значения, что указать в настройках элементов панели при обращении к регистрам 3х или 4х. Так же для кнопок и ламп можно указывать и 0х и 1х.
Используйте 4х и 0х и не заморачивайтесь.

Для других устройств это может иметь значение, нужно смотреть их распределение регистров.
0х, 1х, 3х, 4х это в принципе было задумано как различные области памяти ввода/вывода первых ПЛК
Эти значения в поле "Регистр" означают ссылку на адресное пространство в карте распределения регистров, согласно классического ModBus устройства так, как придумал Модикон. Все адресное пространство ПЛК от 1 до 49999 согласно стандарта, включая физические входы и выходы ПЛК, распределяется на области по 9999 адресов.
MODBUS специфицирует 4 области данных:
(ссылка 0х) 00001-09999 - Discrete Output Coils - однобитовый тип, доступен на чтение и на запись
(ссылка 1х) 10001-19999 - Discrete Input Contacts - однобитовый тип, доступен только на чтение.
(ссылка 3х) 30001-39999 - Analog Input Registers - 16-битовый знаковый или без знаковый тип, доступен только на чтение.
(ссылка 4х) 40001-49999 - Analog Output Holding Registers - 16-битовый знаковый или без знаковый тип, доступен на чтение и на запись.
В каждой области адресация начинается от 0000H и заканчивается 270EH (9999). Т.е. каждый бит для областей 0х и 1х адресуется от 0 до 270E и каждое слово для областей 3х и 4х 1WORD=2Byte=16Bit также адресуется от 0 до 270E.
Это как придумали для Модикона.
Со способом адресации данных связана определённая путаница. Modbus был первоначально разработан для контроллеров Modicon. В этих контроллерах для каждой из таблиц использовалась специальная нумерация. Например, первому регистру ввода (адрес 0000) соответствовал номер ячейки 30001, а первому регистру хранения (адрес 0000) — 40001. Эта разница в адресах для каждой области 1, 10001, 30001 и 40001 называется смещением.
Таким образом, регистру хранения с адресом 107 в команде Modbus соответствовал регистр № 40108 контроллера. Хотя такое соответствие адресов больше не является частью стандарта, некоторые программные пакеты могут автоматически «корректировать» вводимые пользователем адреса, например, вычитая 40001 из адреса регистра хранения.

Спецификация не определяет, что физически должны представлять собой элементы таблиц и по каким внутренним адресам устройства они должны быть доступны. Например, допустимо организовать перекрывающиеся таблицы. В этом случае команды работающие с дискретными данными и с 16-битными регистрами будут фактически обращаться к одним и тем же данным.

IIeroniux
26.11.2013, 18:24
Спасибо за затраченное время! Завтра на работе буду осмысливать.
На работе приобрели ПЛК+СП, и теперь осваиваем сами и для себя:)