PDA

Просмотр полной версии : ПЛК63+МК110+СП270+Lectus ?!



LM0901
20.03.2015, 10:14
Добрый день, господа!
Помогите, пожалуйста, с решением проблемы. ПЛК63М управляет котлом. В качестве расширения входов-выходов МК110. Опрашивается по 485 интерфейсу с помощью ФБ (скачивал когда-то здесь в "примерах программ"). Визуализация и управление на панели СП270. Возникла необходимость прицепить контроллеры к СКАДЕ. (планируется МастерСкада). В качестве OPC выбрал Lectus.
Гружу в контроллер простую программу для проверки связи с OPC- все работает, все входы-выходы видятся по своим адресам. Гружу рабочую (с ФБ опроса МК)- ничего не видится (все переменные "плохого качества"). Блокирую в рабочей программе вызов ФБ опроса МК- все адреса видятся. Реально ли заставить одновременно работать и опрос МК контроллером и опрос контроллера OPC сервером? И, если да- подскажите, пожалуйста- где рыть? Может есть примеры программ для такой конфигурации?

ASo
20.03.2015, 10:16
1. Не реально, как у вас.
2. Опрашивайте по 232 ому порту, если контроллер один или используйте OPC с режимом slave.

LM0901
20.03.2015, 10:30
1. Не реально, как у вас.
2. Опрашивайте по 232 ому порту, если контроллер один или используйте OPC с режимом slave.
1. Оборудование покупалось до меня. Поэтому лепить пришлось из того что было (
2. Контроллер не один и 232 порты заняты панелями оператора (панели останутся и при скаде). ((

LM0901
20.03.2015, 11:24
Переводил OPC в режим slave- часть переменных начинает "видеться" но значения при этом у них "0" (при заведомо других значениях этих переменных).

Вольд
20.03.2015, 12:16
Слаб ПЛК63 для этой задачи.

LM0901
20.03.2015, 12:37
Слаб ПЛК63 для этой задачи.
Так, может есть, все таки, какое то решение?

Вольд
20.03.2015, 13:08
Так, может есть, все таки, какое то решение?
Какими портами ПЛК63 располагаешь и как они распределены ?

Валенок
20.03.2015, 13:15
Слаб ПЛК63 для этой задачи.
63-й легко и непринужденно по одному порту обслужит как мастер все выше перечисленные ус-ва включая и опс. И еще пяток таких комплектов. Вопрос не в слабости 63-его а в релизе самой сети

LM0901
20.03.2015, 13:17
Какими портами ПЛК63 располагаешь и как они распределены ?
Извиняюсь, не понял вопроса.

Валенок
20.03.2015, 13:19
Сеть нарисуй

LM0901
20.03.2015, 13:27
Сеть нарисуй
Если вы о железных портах то, в принципе, в первом посте то "нарисовал"- на 232м панель СП270 (кабель КС-2), на 485м MK110 и к нему же (к порту на контроллере) подсоединяюсь преобразователем интерфейсов (Moxa1150). Т.е. 485я сеть в "нарисованном" виде такая- "ПК-ПЛК-МК".

LM0901
20.03.2015, 13:41
Ты к RS-485 абоненты звездой подключил ? Это не верно, надо по цепочке.
Т.е. опс цеплять к МК?

Вольд
20.03.2015, 13:43
Если вы о железных портах то, в принципе, в первом посте то "нарисовал"- на 232м панель СП270 (кабель КС-2), на 485м MK110 и к нему же (к порту на контроллере) подсоединяюсь преобразователем интерфейсов (Moxa1150). Т.е. 485я сеть в "нарисованном" виде такая- "ПК-ПЛК-МК".
Ты к RS-485 абоненты звездой подключил ? Это не верно, надо по цепочке. На концах линии связи поставь резисторы 120 Ом.

Вольд
20.03.2015, 13:46
Т.е. опс цеплять к МК?
См. картинку и делай.

LM0901
20.03.2015, 13:49
Ты к RS-485 абоненты звездой подключил ? Это не верно, надо по цепочке. На концах линии связи поставь резисторы 120 Ом.
А принципиально ли это для "звезды" с длиной проводов 20 и 50 см?
И кто в данном случае является абонентом если контроллер опрашивает МК а ПК опрашивает контроллер?
Посмотрел картинку и сделал- перевешивал провода от ПК на МК- результаты те же (опс делал и мастером и слейвом).

Вольд
20.03.2015, 13:51
А у тебя случайно адреса абонентов сети RS-485 не пересекаются ?

Вольд
20.03.2015, 13:56
Посмотрел картинку и сделал- перевешивал провода от ПК на МК- результаты те же (опс делал и мастером и слейвом).
В сети RS-485 не может быть два Master. У тебя может быть: ПЛК63 - Master, OPC - Slave, MK110 - Slave.

LM0901
20.03.2015, 13:56
А у тебя случайно адреса абонентов сети RS-485 не пересекаются ?
Теперь нет. Когда конфигурация была без опс адреса и контроллера и МК были 16. Когда подключил опс он начал опрашивать, как оказалось, МК. Сейчас адрес ПЛК изменил (15). Результаты в предыдущих постах.

LM0901
20.03.2015, 13:58
В сети RS-485 не может быть два Master. У тебя может быть: ПЛК63 - Master, OPC - Slave, MK110 - Slave.
"Посмотрел картинку и сделал- перевешивал провода от ПК на МК- результаты те же (опс делал и мастером и слейвом)."

Вольд
20.03.2015, 14:03
"Посмотрел картинку и сделал- перевешивал провода от ПК на МК- результаты те же (опс делал и мастером и слейвом)."
OPC у тебя не может быть Master OPC должен быть обязательно Slave. В OPC какой адрес используешь ? У тебя ПЛК63 (Master) должен читать регистры из MK110 и писать регистры в OPC.

LM0901
20.03.2015, 14:07
OPC у тебя не может быть Master. В OPC какой адрес используешь ?
Я, конечно, дико извиняюсь! Но где в Lectuse установить его адрес (если вы это имеете ввиду)?
Если вы имеете ввиду адрес опрашиваемого узла, то 15 как и контроллера.

Вольд
20.03.2015, 14:10
Я, конечно, дико извиняюсь! Но где в Lectuse установить его адрес (если вы это имеете ввиду)?
Если вы имеете ввиду адрес опрашиваемого узла, то 15 как и контроллера.
Если у тебе ПЛК63 читает из MK110 по адресу 15, то адрес узла OPC не может быть тоже 15. Ты должен читать регистры из MK110 по адресу 15 и писать регистры в OPC по другому адресу. Не могут в сети RS-485 два Slave иметь одинаковые адреса.

LM0901
20.03.2015, 14:13
И еще одно наблюдение- когда делаю опс мастером- в трее пишет "38 переменных (т.е.все) плохого качества, а в таблице переменных напротив каждой переменной в столбце качество пишет- "нет связи с устройством". Когда ставлю опс слейвом в трее пишет "все переменные ОК" в таблице переменных, напротив тех переменных, которые как бы видятся (но с некорректными значениями) пишет "хорошее качество" а напротив тех что не видятся пишет "неопределенное".

Вольд
20.03.2015, 14:20
Читай внимательно пост #22. OPC у тебя должен быть Slave, а ПЛК63 - Master.

LM0901
20.03.2015, 14:20
Если у тебе ПЛК63 и MK110 имеют адрес 15, то адрес узла OPC не может быть 15. Ты должен читать регистры из MK110 по адресу 15 и писать регистры в OPC по другому адресу. Не могут в сети RS-485 два Slave иметь одинаковые адреса.

У меня ПЛК имеет адрес 15, МК имеет адрес 16. Когда я создаю узел в конфигурации Lectusa то забиваю ему адрес контроллера который нужно опрашивать (15). Или это не правильно? 17248
Сейчас менял в этих настройках адрес на другой (14) то же самое.

LM0901
20.03.2015, 14:31
Уточняю, на всякий случай, еще раз.
ПЛК63- адрес 15
МК110- адрес 16
Соединение- в линию "ПЛК-МК-ОПС"
Настройки ОПС и что из этого получаестя в картинках (переменные "хорошего качества" реально имеют не нулевые значения по крайней мере аналоговые входа)
Картинки-1724917250

Вольд
20.03.2015, 14:54
Каша у тебя в голове.

Должно быть так.

ПЛК63 - Master (у Master в сети RS-485 нет адреса)
OPC - Slave 1 (Адрес - 10)
МК110 - Slave 2 (Адрес 16)

LM0901
20.03.2015, 15:42
Каша у тебя в голове.

Должно быть так.

ПЛК63 - Master (у Master в сети RS-485 нет адреса)
OPC - Slave 1 (Адрес - 10)
МК110 - Slave 2 (Адрес 16)
"ОПС адрес- 10"- сделал(в тех параметрах опс что на рисунке). То же самое (и в чем разница адрес 10 или любой другой непересекающийся с другими в сети?).
"ПЛК63 - Master (у Master в сети RS-485 нет адреса)"- а опрашивать нужно буде не один контроллер. Только ПЛК63-х будет два, еще и другие скорее всего- как тогда с мастерами слейвами быть?

energvk
20.03.2015, 15:50
Если у вас ПЛК Master, то ОПС-сервер его не опрашивает, а ПЛК передает/забирает данные в/из ОПС-сервера

LM0901
20.03.2015, 16:03
Если у вас ПЛК Master, то ОПС-сервер его не опрашивает, а ПЛК передает/забирает данные в/из ОПС-сервера
Но, как я понял, у меня ПЛК действительно может быть только мастером, т.к. опрашивает МК. Тогда что, два аналогичных контроллера (одинаковые программы и конфигурации) опросить не смогу однозначно?
И, возвращаясь к предыдущим постам- сделал все как учили (опс- слейв с адресом 10, МК с адресом 16)- данные в опс некорректные все равно, даже если пока забыть о втором контроллере.
В чем здесь может еще быть причина?

Валенок
20.03.2015, 16:36
Если Вы кого-то выключаете, и опрос норм. - тупо коллизия 2 мастера или по адресам.
Если плк всегда норм. опрошивает МК, а в опс-слейве данных нет, 2 варианта:
1.Хреновый слейв на опс. Копайте там
2.Хреновый мастер на 63. Тут все от рук аффтора зависит.

LM0901
20.03.2015, 16:42
Если Вы кого-то выключаете, и опрос норм. - тупо коллизия 2 мастера или по адресам.
Если плк всегда норм. опрошивает МК, а в опс-слейве данных нет, 2 варианта:
1.Хреновый слейв на опс. Копайте там
2.Хреновый мастер на 63. Тут все от рук аффтора зависит.
1. Что подразумевается под этой фразой?
2. Не нашел как вставить файл поэтому код ФБ опроса МК вставляю текстом, может поможет в чем:
IF NOT Port_opened THEN
Com_handle := SysComOpen(0);
IF Com_handle = 16#FFFFFFFF THEN
SysComClose(0);
Com_handle:=SysComOpen(0);
END_IF;

Com_setEx.Size := SIZEOF(com_setEx);
Com_setEx.Port := 0; (*Èñïîëüçóåìûé ïîðò*)
Com_setEx.dwBaudRate := 115200; (*cêîðîñòü ïåðåäà÷è äàííûõ*)
Com_setEx.byStopBits := 0; (*Êîë. ñòîï-áèò*)
Com_setEx.byParity := 0; (*Êîíòðîëü ÷åòíîñòè*)
Com_setEx.dwTimeout := 0;
Com_setEx.dwBufferSize := 0;
Com_setEx.dwScan := 0;
Com_setEx.cByteSize := 8; (*Êîë. áàéò â ïîñûëêå*)

Res:=SysComSetSettingsEx(0,ADR(Com_setEx));

IF NOT Res THEN
Port_opened:=TRUE;
END_IF;
END_IF;

IF NOT Port_opened THEN
RETURN;
END_IF;

(************************************************* *************************************)

CASE Master OF

(************************************************* *************************************)

0:

(*ôóíêöèÿ 03 èíò - ÔÁ ñ÷èòûâàåò çíà÷åíèå ïàðàìåòðà òèïà int èç ïðèáîðà ñ àäðåñîì 16 â ðåãèñòð ñ íîìåðîì 8 ïî ïðîòîêîëó Modbus-RTU*)

Read(
Enable:=Port_opened, (* ðàçðåøåíèå ðàáîòû áëîêà *)
Mode:=MB_RTU , (*ðåæèì ïåðåäà÷è*)
DevAddr:=16, (*àäðåñ*)
FirstAddr:=51, (*íîìåð ðåãèñòðà*)
Quantity:=1, (*êîëè÷åñòâî ðåãèñòðîâ*)
ComHandle:=0 , (*íîìåð COM-ïîðòà*)
TimeOut:=T#10ms, (*Òàéìàóò T#50ms*)
Buffer:=Buffer , (* áóôåð äàííûõ *)
Complete=>Cmpl , (* ñêîïèðîâàòü ïðèçíàê çàâåðøåíèÿ îïåðàöèè *)
Exception=>Error , (* ñêîïèðîâàòü ðåãèñòð îøèáîê *)
ByteCnt=>DataSize ); (*êîë-âî ñ÷èòàííûõ áàéòîâ *)
(*åñëè óñòàíîâëåí ïðèçíàê çàâåðøåíèÿ îïåðàöèè, òî *)
IF Cmpl THEN
IF Error=0 THEN (*Åñëè íåò îøèáîê, òî ïîëó÷àåì äàííûå èç áóôåðà òèïà INT*)
MK_IB:=(BUFFER[4]);
END_IF
Master:=1; (*ïåðåõîäèì ê âûïîëíåíèþ ñëåäóþùåãî ÔÁ*)
END_IF

(************************************************* *************************************)

1:

(*ôóíêöèÿ 16 - çàïèñü ïàðàìåòðîâ òèïà Int (ðåãèñòð 4) è Real (ðåãèñòð 6) â ïðèáîð ñ àäðåñîì 2 *)

Buffer[1] := DINT_TO_BYTE(MK_OB); (*çàïèñü â áóôôåð ïàðàìåòðà òèïà INT*)

Writing(
Enable:= Port_opened, (* ðàçðåøåíèå ðàáîòû áëîêà *)
Mode:=MB_ASCII , (*ðåæèì ïåðåäà÷è*)
DevAddr:=16 , (*àäðåñ*)
FirstAddr:= 50, (*íîìåð ðåãèñòðà*)
Quantity:= 1, (*êîëè÷åñòâî çàïèñûâàåìûõ ðåãèñòðîâ*)
ComHandle:=0 , (*íîìåð ñîì-ïîðòà*)
TimeOut:=T#10ms , (*òàéìàóò T#50ms*)
Buffer:=Buffer , (* áóôåð äàííûõ *)
Complete=>Cmpl , (* ñêîïèðîâàòü ïðèçíàê çàâåðøåíèÿ îïåðàöèè *)
Exception=>Error , (* ñêîïèðîâàòü ðåãèñòð îøèáîê *)
RegCnt=> DataSize); (*êîë-âî ñ÷èòàííûõ áàéòîâ *)

IF Cmpl THEN
Master:=0; (*ïåðåõîäèì ê âûïîëíåíèþ ñëåäóþùåãî áëîêà*)
END_IF

(************************************************* *************************************)

END_CASE

(************************************************* *************************************)
(*Ïîáèòîâîå ïðåäñòàâëåíèå âõîäîâ ÌÊ*)
_SPARE_4:=MK_IB.0;
water_pump_run:=MK_IB.1;
water_pump_fail:=MK_IB.2;
MK_I4:=MK_IB.3;
MK_I5:=MK_IB.4;
MK_I6:=MK_IB.5;
MK_I7:=MK_IB.6;
MK_I8:=MK_IB.7;
(************************************************* **************************************)
(*Ïîîäèíî÷íîå ïðåäñòàâëåíèå âûõîäîâ ÌÊ*)
MK_OB.0:=v_2;
MK_OB.1:=v_3_o;
MK_OB.2:=v_3_c;
MK_OB.3:=v_4;

Вольд
20.03.2015, 18:26
"ПЛК63 - Master (у Master в сети RS-485 нет адреса)"- а опрашивать нужно буде не один контроллер. Только ПЛК63-х будет два, еще и другие скорее всего- как тогда с мастерами слейвами быть?
Если в сети RS-485 будет несколько ПЛК63, то один из них будет Master, а остальные Slave. Тебе надо твердо усвоить, что в сети RS-485 может быть только один Master. То что у тебя не хрена не получается скорее всего из-за того, что не корректно написан кусок программы для ПЛК63, отвечающий за обмен с OPC-сервером.

LM0901
20.03.2015, 19:21
Если в сети RS-485 будет несколько ПЛК63, то один из них будет Master, а остальные Slave. Тебе надо твердо усвоить, что в сети RS-485 может быть только один Master. То что у тебя не хрена не получается скорее всего из-за того, что не корректно написан кусок программы для ПЛК63, отвечающий за обменс OPC-сервером.

Это понятно что один мастер. Но проблема в том что каждый из этих двух контроллеров опрашивает свой МК. Конфигурации и программы идентичные (два котла) а нужно оба прицепить к скаде.
Задам вопрос по другому как можно реализовать мою задачу- два котла, каждый управляется своим ПЛК63 каждый из которых опрашивает по 485му свой МК на каждом из контроллеров висит на 232м панель оператора. Понятно что каждый из них сейчас мастер для своей сети (контроллер- МК) так вот можно ли оба эти контроллера прицепить каким то образом к одной скаде?

amn
20.03.2015, 19:27
Мастер опрашивает все модули (и свои и чужие) и раздает результат тем слэйвам (дополнительным контроллерам), которым эти значения нужны.

LM0901
21.03.2015, 01:28
А вот посетила такая мысль. Оба контроллера с панелями СП270. В панелях все необходимые мне для скады переменные есть. Панель СП270 имеет два железных порта. Сейчас работает с контроллером через порт "PLC" по 232 интерфейсу в качестве мастера. Могу ж я открыть (в конфигурации панели) порт "Download" в качестве мастера, порт PLC сделать слейвом, переназначить все переменные в программе панели на порт "Download" (c одновременной переадресацией их на порт "PLC" (для нужд скады)). Подключить ПЛК к порту "Download" (панель мастер- ПЛК слейв) и спокойно опрашивать панели opc сервером через порт "PLC" (опс мастер- панель слейв).
Как насчет такого варианта?

Валенок
21.03.2015, 09:37
Как насчет такого варианта?
пойдет

PS

1. Что подразумевается под этой фразой?
2. Не нашел как вставить файл поэтому код ФБ опроса МК

1.1. Опс не может быть слейвом
1.2. У опс левые настройки (к автору)
2. А причем тут МК если речь о опс-слейве ?

LM0901
21.03.2015, 10:08
Буду пробовать вариант с подключением опс к панелям.
Где то видел информацию по поводу недокументированного присутствия интерфейса толи 422 то ли 485 на порту "Download" панели СП270.
Может кто знает точно- в "Download" нет 485го? (чтоб не перепахивать всю программу панели)

Валенок
21.03.2015, 10:14
Со стороны "PLC" 485й вытягивается с двух пинов 232-ого. Разъем ДБ9 с двумя жилками - так всегда и делаю.
На "Download" видимо тоже самое - не пробывал.

LM0901
21.03.2015, 10:45
Самое смешное что сейчас начал пробовать с панелью экспериментировать а она не хочет коннектиться с компом. Кабель рабочий, преобразователь тоже (этим кабелем и преобразователем(Моха) проекты в эти панели и вдувал) А сейчас при нажатии "кнопки" "Загрузить" в программе панель грустно пикает один раз и на экране появляется рисунок панели "BEST Loading..." и висит. А программа тупо перебирает порты и говорит что пригодного нет. Что может быть?

LM0901
21.03.2015, 11:31
Похоже Moxa умирать начала. Через железный COM с другого компьютера коннект нормальный.

Вольд
21.03.2015, 11:43
Буду пробовать вариант с подключением опс к панелям.
Где то видел информацию по поводу недокументированного присутствия интерфейса толи 422 то ли 485 на порту "Download" панели СП270.
Может кто знает точно- в "Download" нет 485го? (чтоб не перепахивать всю программу панели)
У СП270 есть RS-232 (2 канала) и RS-485 (1 канал). По RS-485 обе панели можно подключит к OPC-серверу.

petera
21.03.2015, 12:22
Буду пробовать вариант с подключением опс к панелям.
Где то видел информацию по поводу недокументированного присутствия интерфейса толи 422 то ли 485 на порту "Download" панели СП270.
Может кто знает точно- в "Download" нет 485го? (чтоб не перепахивать всю программу панели)


Со стороны "PLC" 485й вытягивается с двух пинов 232-ого. Разъем ДБ9 с двумя жилками - так всегда и делаю.
На "Download" видимо тоже самое - не пробывал.


У СП270 есть RS-232 (2 канала) и RS-485 (1 канал).
Интерфейсов у СП270 больше
- у порта Download кроме интерфейса RS232 так же имеется интерфейс RS485
- а у порта PLC кроме интерфейсов RS232 и RS485 так же имеется интерфейс RS422.
http://www.owen.ru/forum/showthread.php?t=14368

http://www.owen.ru/forum/showthread.php?t=14367&p=103070&viewfull=1#post103070

http://www.owen.ru/forum/attachment.php?attachmentid=12952&d=1400235741
Желтым цветом выделены не описанные в руководстве интерфейсы, но они есть!
(http://www.owen.ru/forum/showthread.php?t=14368)
Подключение к СП270 по RS422 http://www.owen.ru/forum/showthread.php?t=14367&p=103251&viewfull=1#post103251

LM0901
21.03.2015, 12:33
Интерфейсов у СП270 больше
- у порта Download кроме интерфейса RS232 так же имеется интерфейс RS485
- а у порта PLC кроме интерфейсов RS232 и RS485 так же имеется интерфейс RS422.
http://www.owen.ru/forum/showthread.php?t=14368

http://www.owen.ru/forum/showthread.php?t=14367&p=103070&viewfull=1#post103070

http://www.owen.ru/forum/attachment.php?attachmentid=12952&d=1400235741
Желтым цветом выделены не описанные в руководстве интерфейсы, но они есть!
(http://www.owen.ru/forum/showthread.php?t=14368)
Подключение к СП270 по RS422 http://www.owen.ru/forum/showthread.php?t=14367&p=103251&viewfull=1#post103251
Спасибо!
Буду пробовать.

petera
21.03.2015, 12:41
Спасибо!
Буду пробовать.
Для использования порта Dowload в режиме связи с оборудованием, а не для конфигурации Обязательно наличие перемычки между 6 и 5 кон. в разъеме порта Download

LM0901
21.03.2015, 13:05
Для использования порта Dowload в режиме связи с оборудованием, а не для конфигурации Обязательно наличие перемычки между 6 и 5 кон. в разъеме порта Download
Да, знаю. Уже пробовал вешать контроллер на этот порт. Работает. Но теперь хочу попробовать оставить контроллер на "PLC" а скаду привесить к "Download" через 485й интерфейс дабы не переназначать порты для всех переменных в проекте панели.