PDA

Просмотр полной версии : СПК110 + ПЛК160



viktor__
30.09.2015, 20:32
Здравствуйте форумчане!
С Codesys еще не имел дела, и указанное железо пока еще не закупили. Изучаю документацию, и даже не знаю, хорошо это или плохо, что ее так много. Голова уже готова лопнуть, а ясности пока нет. Прошу добрых людей направить на путь истинный!
Пока возникли такие вопросы:
1. ПЛК160-24.И.М программируется в среде v2.3 (Версия v3.5 не подходит)?
2. СПК110 программируется в версии v3.5?
3. Связаны устройства будут по 485, Modbus RTU. Как настроить сетевой обмен между ними. Нужно ли использовать OPC-сервер, или какие-либо встроенные технологии. Насколько я понимаю в одном проекте Codesys можно создать и приложение ПЛК и визуализацию, но не в моем случае (поскольку разные версии)? Может кто-нибудь подскажет где можно почитать по этой теме. Может быть есть примеры, но я пока не нашел.

Эдуард_Н
30.09.2015, 21:21
1. ПЛК160-24.И.М программируется в среде v2.3-ДА
2. СПК110 программируется в версии v3.5-ДА
3. Связаны устройства будут по 485, Modbus RTU.-Если СПК110 будет использована как обычная панель то лучше не надо, по сравнению с обычной панелью очень много заморочек. Подберите вместо неё какую ни будь панель оператора.

Uniqum
30.09.2015, 22:14
http://www.owen.ru/forum/showthread.php?t=15530&page=66&p=173183#post173183 может поможет

Эдуард_Н
01.10.2015, 04:12
http://www.owen.ru/forum/showthread.php?t=15530&page=66&p=173183#post173183 может поможет

Попробуйте с помощью СПК вводить какую ни будь уставку, что бы её не стирало при включении СПК и ПЛК.

capzap
01.10.2015, 05:30
Попробуйте с помощью СПК вводить какую ни будь уставку, что бы её не стирало при включении СПК и ПЛК.

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

Uniqum
01.10.2015, 12:54
пользуясь случаем хотелось бы спросить у Вас решение (ну или направление :) ) в решении одной проблемы. Имеются ПЛК100 и СПК110. Нужно из ПЛК100 (мастер) отправлять bool переменные в СПК (посредством добавления устройств в СПК как то не получается, да и гонять WORD как то не камильфо) 20204] Хочу попробовать через библиотеки, но столкнулся с тем что не могу понять адресацию регистров в ПЛК :) 20203

capzap
01.10.2015, 13:04
у Вас два программируемых логических устройства, примеров работы с компортом как грязи, зачем Вам вобще модбас?
Создаете две структуры, одну на передачу, другую на прием в обоих плк. Один из контроллеров делаете ведущим и с определенной периодичностью передаете заполненную структуру на передачу и начинаете ждать в ответ массив байт для заполнения структуры на прием. В ведомом точно такие же структуры только наоборот и процесс отличается так же противоположно

Uniqum
01.10.2015, 13:24
Да вот проблема в том что СПК будет 20 шт. и 1 ПЛК(который связан со СКАДой)

capzap
01.10.2015, 13:34
а разницы ни какой, в протоколе модбас, всёравно кто то "сидит" и разбирает ему ли пришел запрос, просто скрыто от пользователя в отличии от самопального решения. Контрольные суммы так же нужны при любом методе передачи данных, так что то же разницы ни какой. Отпадает только необходимость в адресации

Uniqum
01.10.2015, 13:36
Ладно хотя бы тогда пример покажите пожалуйста, буду разбирать

Yegor
01.10.2015, 13:37
Я на недавнем объекте связывал ПЛК110 с двумя СПК110, которые используются чисто как операторский интерфейс.

Обе панели подключаются каждая на свой порт контроллера: одна — на RS-232, другая — на RS-485-2. В конфигураторе контроллера создаётся ветка Modbus (slave), в которую набиваются нужные регистры (они будут нумероваться с нуля) и добавляются оба интерфейса. Панели настраиваются на опрос этих регистров. Обе панели совершенно равнозначны, на них записана одна и та же программа. Схема масштабируется в обе стороны — так же легко можно подключить и одну панель, и десять (было бы столько портов у контроллера) с минимальным копипастом. Задержек (лагов) нет.

Первые четыре модбас-регистра отводятся на передачу команд от панелей контроллеру — эти регистры записываются панелями только когда оператор вызывает команду. Остальные 39 регистров считываются панелями с периодом 33 мс одним скопом. На стороне контроллера эти регистры формируются очень просто:

SAFlags.2 := PLC_PRG.RegenEnabled;
SAUnitStatesLo.0 := heater;
SAUnitStatesLo.1 := ik29;
SAUnitStatesLo.2 := ik1;
SAUnitStatesLo.3 := ik2;
SAUnitStatesLo.4 := ik3;
...где SAUnitStatesLo, например, это имя регистра в конфигураторе контроллера (см. скриншот ниже). Аналогичным образом эти WORD'ы потом разбиваются по битам на панелях:
(* 2 byte SAUnitStatesLo *)
reg := 1;
heater := mbusRaw[reg].0;
kpz[29] := mbusRaw[reg].1;
kpz[1] := mbusRaw[reg].2;
kpz[2] := mbusRaw[reg].3;
kpz[3] := mbusRaw[reg].4;
kpz[4] := mbusRaw[reg].5;где kpz — заранее объявленный массив, mbusRaw — заранее объявленный массив с привязкой к каналу чтения регистров. Изначально я пробовал сделать разделение регистров на панелях конфигуратором третьего кодесиса, но выяснилось, что менять эту конфигурацию потом очень трудно, да и опрос равномерный организовать не получается. Куда проще оказалось сделать чтение всех регистров разом в массив и разбивать их потом вручную.

Команды передаются через четыре регистра: код команды, аргумент А, аргумент Б, контрольная сумма (не используется). Например, когда оператор открывает клапан №1, панель однократно записывает код = 4, аргумент А = 1. Контроллер в очередном цикле натыкается на код 4, открывает клапан 1 и выставляет код 0, чтобы команда больше не выполнялась. Для передачи сразу нескольких команд (конфигурирование и пуск автоматического режима, например) в панелях предусмотрен конвейер на 51 команду (хм, нафига так много?).

20206

capzap
01.10.2015, 13:44
:) как долго планируете ждать от меня примера? я в командировке и пока не доберусь до дома больших примеров не сделаю
http://www.owen.ru/forum/showthread.php?t=13585 здесь присмотритесь к 8 примеру

Uniqum
01.10.2015, 13:53
Спасибо за примеры.
Да проблема не в том как отправить из ПЛК, а как конкретно получить в СПК :)

viktor__
01.10.2015, 17:49
http://www.owen.ru/forum/showthread.php?t=15530&page=66&p=173183#post173183 может поможет
Спасибо! Похоже ваша инструкция как раз по моему вопросу. Жду не дождусь когда придут железяки, буду пробовать.
Еще вопрос. Судя по PrintScreen у вас одновременно установлены codesys и V2.. и V3.. они не конфликтуют? Нет-ли каких-либо нюансов при установке? Можно-ли попробовать запустить оба проекта в режиме симуляции?