PDA

Просмотр полной версии : СП270 примеры организации связи.



Адрей
11.07.2011, 11:10
Тема закрыта можно в корзину.

Николаев Андрей
11.07.2011, 12:24
Респект.:) :)

Игоррр
20.07.2011, 14:05
И в каком режиме работа оптимальна?
я просто не могу оттестировать это сейчас, и в чём состоит оптимизация?

swerder
20.07.2011, 14:40
наверно во втором, раз так написано.
в том, что панель, спрашивая с плк тучу параметров, опрашивает того не тучей же разрозненных посылок, а оптом, за один присест всю простыню регистров считывает

Karrimdra
18.11.2011, 20:16
Попытался разобраться с примерами, вот дурацкие вопросы частично по протоколу наверное
вопрос по примеру 1

насосы и кнопки связаны напрямую с регистрами как я понял, все по функции 0х01 (Read Coil Status) (те чтение/запись регистров)
Вопрос 1. Панель запросы посылает сама постоянно? или только при изменении состояния кнопки (те нажал кнопку, панель послала запрос на изменение регистра в ПЛК)?
потому как если только при изменении, то непонятно как насосы изменяют свое состояние, или панель при изменении одной переменной посылает запрос на все?
Вопрос 2. Почему насосы запитаны по функции 0х01 (Read Coil Status), а не например 0х02 (Read Input Status) они же только принимают значение и не меняют его?
Вопрос 3. (к програмерам К СП200, риторический) почему функция
0х01 (Read Coil Status) называется 0х
0х02 (Read Input Status) называется 1х
при этом
0х03 (Read Holding Registers) - 3х
0х04 (Read Input Registers) - 4х
это для простоты понимания?

вопрос по Примеру 2

Функциональная область -> Функция -> Передача данных (это означает запись в регистр Панели из Области вывода ПЛК?)
Тоесть при нажатии на кнопки мы сразу отправляем запрос на изменение битов в плк, а Функциональная область циклически записывает Регистры ПЛК в память Панели одним пакетом?

А то название Передача данных както наводит на мысль что данные уходят с панели на ПЛК.
Вопрос 4. Если ответ на вопрос 1 - панель сама постоянно опрашивает, то получается что панель и так сама опрашивает и мы функцию в цикл поставили? а как они определяют приоритет (в смысле панель и функция)? или они по очереди?

С примерами 3 и 4 вроде все ясно если понимать ответ на вопрос 1 и 4 который зависит от 1))

PS Не вините слишком строго, запутался я, а разобраться хочется.

Karrimdra
19.11.2011, 10:17
Все равно пока расплывчато для меня)

Те берем пример 1, там нету от нас явных команд произвести чтение или запись.
Я так понял, есть буфер обмена панели, указав в кнопке или насосе 0х0 или 0х15, видимо означает что они читают пишут в память буфера.
Конгда есть изменение кнопки (к примеру: нажатие) или явная команда (например: Функциональная область -> Функция -> Передача данных) панель формирует запрос на запись, если никаких явных команд от элементов то панель сама формирует запрос к слейв устройствам для обновления значениями с буфера слейв устройств.

Например в примере 1 логика отправки запросов.

Пока нет изменений регистров ModBus со стороны элементов панели то запрос на чтение всех регистров указанных на всех экранах из сети (при этом запрос делается на каждый регистр отдельно???),
если есть изменение регистров ModBus со стороны элементов панели, то запрос на запись того регистра что изменился.

тогда в примере 2

Мы не даем панели свободного времени чтобы опрашивать регистры поштучно потому что занимаем все свободное время выполнением цикла запросов блоком.

Я правильно понял работу или это не так.
Поправьте меня пожалуйста или дайте подтверждение, я не увидел явного описания этого процесса нигде. А для того чтобы понять суть оптимизации хотелось бы понимать суть процесса. Иначе возникают вот такие посты

И в каком режиме работа оптимальна?
я просто не могу оттестировать это сейчас, и в чём состоит оптимизация?

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

Если приведенное выше верно, то я не очень понимаю где может пригодиться пример 3 (подскажите для общего развития плз)?

Karrimdra
19.11.2011, 10:59
Извиняюсь, подитожу алгоритм я правильно понял, за исключением того что в панели нет буфера.

те пока нет команд на запись она циклически запрашивает данные по 1 штуке. (команды на запись инициируются элементами управления)

Верно?

Karrimdra
19.11.2011, 15:11
А не могли бы вы подсказать чем отличается функция "передать данные" от функции "передать блок данных"

Также если вы в курсе, панель в автоматическом режиме опрашивает все регистры которые есть в программе, или только те что есть на данном экране?

swerder
21.11.2011, 10:07
Karrimdra
вы когда добавляете в панели элемент "цифровой дисплей" например, там в настройках связи выбирается источник получения данных. если выбрать plc 4x с каким-то адресом регистра в плк, то панель будет все время посылать запрос на чтение этого регистра, пока у вас отображен этот цифровой дисплей на экране. если у вас 20 цифровых дисплеев, то панель должна будет послать 20 запросов на чтение 1 регистра. скорость обновления данных в каждом дисплее сами догадываетесь какое будет?
если же переложить на функциональную область чтение всех данных из плк в оперативную память панели скопом, за раз оптом, одним запросом, а все цифровые области настроить на чтение из оперативной памяти - будет ваша оптимизация.

p.s.
возникают вот такие посты

наверно во втором, раз так написано.
говорящие о том что мы просто можем догадываться о сути оптимизации,

в этой цитате присутствует большая доля иронии

Karrimdra
21.11.2011, 11:10
Посто для моего понимания изначально было странно что готовый продукт посылает запросы по 1 регистру, а не оптом и это приходится реализовывать пользователю.
Я предполагал что он наверное проходит все объекты, собирает в стек все регистры которые надо опросить и разом в конце прохода отправляет, я до сих пор не могу представить зачем может понадобится опрашивать по 1 регистру если выводить их все равно все, это же наверное не просто так оставили)

capzap
21.11.2011, 11:35
причем тут панель, протокол модбас отправляет либо один регистр либо несколько, взависимости от выбранной функции

Karrimdra
22.11.2011, 00:06
Протокол то отправляет, но функцию то протокол не придумывает, её алгоритм работы панели наверное выбирает.
И если панель выбирает по одному регистру отправлять протокол то наверное не против.
А вот если бы панель решила все огулом заправить, то наверное протокол то тоже был бы не против.

Ваше мнение?

swerder
22.11.2011, 10:00
воспользуйтесь функциональной областью для чтения всех данных с контроллера пачкой в оперативку панели, а элементы отображения натравите на регистры в оперативке

AlexPC1
28.08.2014, 07:22
Вложение не существует или не указан идентификатор (номер). Если вы уверены, что использовали правильную ссылку, свяжитесь с администрацией
Хотелось бы скачать пример:
Обмен между ПЛК и СП270 в режиме передачи данных с копированием в память PSW с функцией передать данные (чтение) оптимальный режим.
Вложение 5030

AlexPC1
28.08.2014, 07:23
воспользуйтесь функциональной областью для чтения всех данных с контроллера пачкой в оперативку панели, а элементы отображения натравите на регистры в оперативке
Подскажите как это сделать?

petera
28.08.2014, 11:18
Подскажите как это сделать?


Вложение не существует или не указан идентификатор (номер). Если вы уверены, что использовали правильную ссылку, свяжитесь с администрацией
Хотелось бы скачать пример:
Обмен между ПЛК и СП270 в режиме передачи данных с копированием в память PSW с функцией передать данные (чтение) оптимальный режим.
Вложение 5030
Держите все 4 примера из первого поста, случайно завалялись:)

Василий Кашуба
28.08.2014, 11:23
Держите все 4 примера из первого поста, случайно завалялись:)
Большое спасибо.

petera
28.08.2014, 11:51
Karrimdra
вы когда добавляете в панели элемент "цифровой дисплей" например, там в настройках связи выбирается источник получения данных. если выбрать plc 4x с каким-то адресом регистра в плк, то панель будет все время посылать запрос на чтение этого регистра, пока у вас отображен этот цифровой дисплей на экране. если у вас 20 цифровых дисплеев, то панель должна будет послать 20 запросов на чтение 1 регистра. скорость обновления данных в каждом дисплее сами догадываетесь какое будет?
если же переложить на функциональную область чтение всех данных из плк в оперативную память панели скопом, за раз оптом, одним запросом, а все цифровые области настроить на чтение из оперативной памяти - будет ваша оптимизация.

p.s.
в этой цитате присутствует большая доля иронии


Посто для моего понимания изначально было странно что готовый продукт посылает запросы по 1 регистру, а не оптом и это приходится реализовывать пользователю.
Я предполагал что он наверное проходит все объекты, собирает в стек все регистры которые надо опросить и разом в конце прохода отправляет, я до сих пор не могу представить зачем может понадобится опрашивать по 1 регистру если выводить их все равно все, это же наверное не просто так оставили)


Протокол то отправляет, но функцию то протокол не придумывает, её алгоритм работы панели наверное выбирает.
И если панель выбирает по одному регистру отправлять протокол то наверное не против.
А вот если бы панель решила все огулом заправить, то наверное протокол то тоже был бы не против.

Ваше мнение?
В заключение темы.
Когда панель сама формирует групповые запросы и особенности операций чтения и записи регистров подчиненного устройства можно посмотреть здесь http://www.owen.ru/forum/showthread.php?t=14132&p=139313&viewfull=1#post139313

Василий Кашуба
30.08.2014, 19:54
Вроде бы простой проект, а связь между СП270 и ПЛК100-К-М не полная, часть битовых переменных не доходят до СП270, хотя адресация битов идёт подряд. Спецы, помогите победить проект. :confused:

capzap
30.08.2014, 20:06
мое мнение что порт дебаг не подходит для рабочего соединения с устройствами, во вторых если Вы слышали что нибудь про выравнивание то Вам это не удалось
в третьих я смотрю шаблоны остались в соседнем мастере, наберетесь Вы с ними горя

ЗЫ как бы смысла нет продолжать подсказывать на огрехи, потому что и предыдущие не устранены. Ну так на всякий случай, один момент trunc это округление к наименьшему целому, если вдруг требуется обычное округление, лучше REAL_TO_INT

Василий Кашуба
30.08.2014, 20:23
мое мнение что порт дебаг не подходит для рабочего соединения с устройствами, во вторых если Вы слышали что нибудь про выравнивание то Вам это не удалось
в третьих я смотрю шаблоны остались в соседнем мастере, наберетесь Вы с ними горя

ЗЫ как бы смысла нет продолжать подсказывать на огрехи, потому что и предыдущие не устранены. Ну так на всякий случай, один момент trunc это округление к наименьшему целому, если вдруг требуется обычное округление, лучше REAL_TO_INT
Почему, вы считаете, что я не правильно выравнял адреса? У меня Нулевой адрес - два модуля по 8 бит, а дальше по порядку все 2-х байтные регистры.

capzap
30.08.2014, 20:41
виноват, на реалы подумал, просто больше причин потерять биты нет как не соблюсти выравнивание

Василий Кашуба
30.08.2014, 21:23
Мельком глянул, нужно разделить биты в байте на чтения и запись отдельно, то есть, лучше 16 бит на запись, следом 16 бит на чтения, далее група регистров на чтения, следом группа регистров на запись тогда будет общее понимание с плк, да для старой панели лучше версию 2.99 которая работает правельно чем 2.82. Для начало оклиматизируйтесь с опросом модбус + ОВЕН ПЛК есть разница между версиями.
Просьба тогда, поделитесь версией 2.99

Василий Кашуба
30.08.2014, 21:38
...далее группа регистров на чтения, следом группа регистров на запись тогда будет общее понимание с плк
А группа регистров, это сколько? Произвольное число, или есть какое то оптимальное?

Василий Кашуба
31.08.2014, 11:02
Отправил на почту.
Спасибо за помощь.

Василий Кашуба
31.08.2014, 13:09
Ещё вопрос, как уставки, введённые с панели, сохранить в энергонезависимой памяти? И где лучше сохранять, в ПЛК, или в СП270?

Василий Кашуба
31.08.2014, 17:21
А зачем их сохранять в панели, ведь процессом регулирования занимается ПЛК там их и сохраняйте, тем более у вас слейв на ПЛК.
А как после восстановления питания, вернуть уставки в панель?

Василий Кашуба
31.08.2014, 17:38
А у слейва все регистры сохраняемые. Так они и не куда не денутся, плюс у вас же регистры на запись в панели работают только на событие по записи. При открытии экрана уставок регистры прочитаются автоматом.
А у меня, после выключения и последующего включения питания, уставки обнуляются.

Василий Кашуба
31.08.2014, 18:53
Видимо аккумулятор накрылся в ПЛК, либо он разряжен, попробуйте его подзарядить оставив ПЛК на день включенным.
Спасибо, буду смотреть.

AlexPC1
01.09.2014, 09:17
Спасибо!!!

petera
01.09.2014, 16:47
Вроде бы простой проект, а связь между СП270 и ПЛК100-К-М не полная, часть битовых переменных не доходят до СП270, хотя адресация битов идёт подряд. Спецы, помогите победить проект. :confused:
Скорей всего речь идет о лампах "Отопление "+", "Отопление "-", "ГВС "+" и ГВС "-" на экране Приборы? Так у Вас Вид включенной и выключенной лампы совпадает.
14220
По этому как бы нет изменения индикации. Нужно было пользовательский вид для состояний влючить и выключить задавать изображения разного цвета.