|
  |
Два контроллера Pco5 в одной установке |
|
|
|
20.1.2015, 16:52
|
Группа: New
Сообщений: 15
Регистрация: 12.9.2013
Пользователь №: 205378

|
Доброго времени суток! Прошу помочь разобраться в некоторых нюансах написания программы для pCO. Постараюсь максимально разложить вопрос. Имею небольшой опыт программирования контроллеров pCO3 и pCO5. Все проекты имели порядка 10-15 исполнительных механизмов, для этого вполне хватало дискретных выходов одного котроллера. Сейчас мне необходимо написать программу для гораздо большего количества выходов (порядка 50). Использовать связку контроллер + пачка плат расширения не целесообразно как с финансовой так и практической стороны. Поэтому выбор пал на комбинацию из двух pCO5 Extra large (29 + 29 выходов) и одного дисплея pGD1. Алгоритм управления оборудованием у меня почти готов, с этим проблем нет. Вопрос связан с распределением программной части между контроллерами. Подскажите как правильно поступать в подобной ситуации. Пока вижу 2 варианта:
вариант №1. Распределение выходов между контроллерами решается особой нумерацией этих выходов. В описании блока "Dout" говорится что нумерация дискретных выходов второго контроллера должна быть с приставкой +25. Тоесть, дискретный выход "NO1" второго контроллера должен быть под номером 26 и тд. Вот вроде бы и подсказка, подумал я, но, pCO5 extra large имеет 29 выходов. Что ж получается, 5 выходов на каждом контроллере выпадают с логики? Или тут нумерация сдвигается не на +25 а на +29? Проверить в симуляторе не могу, там симулируется работа только 1 контроллера. Так как датчики подключаются только к первому контроллеру, это нужно оформить программно (разрешить опрос аналоговых входов только первому контроллеру, второму контроллеру передавать значения с датчиков через pLan links в networkeditor) - подсмотрел в одной из Demo_solution . Также поступить и с остальными входами, влияющими на работу алгоритма. В данном варианте в каждый контроллер прошивается одинаковая программа, которую они синхронно обрабатывают (с учетом вышеописаных нюансов).
вариант №2. В рамках одной Solution создаю два разных проекта. В первом заложен алгоритм опроса датчиков\входов, а также основная часть всей программы. Во втором проекте почти пустая программа - чтение через pLan links переменных и передача их значений прямо на дискретные выходы. Грубо говоря, в этом варианте второй контроллер будет выполнять функцию платы расширения с доп выходами.
Какой из вышеописанных вариантов является рабочим и правильным? Какие системные переменные нужно использовать для правильной установки связи между двумя контроллерами?
Оборудование заказано и будет через несколько недель, а чтобы времени не терять пытаюсь разобраться. Но так как это мой первый опыт связки двух контроллеров в рамках одной промышленной установки, решил обратиться к более опытным автоматчикам, тоесть к Вам!
Сообщение отредактировал liquid_ua - 20.1.2015, 16:53
|
|
|
|
|
20.1.2015, 17:12
|
Группа: Участники форума
Сообщений: 84
Регистрация: 16.3.2010
Пользователь №: 48554

|
Цитата(liquid_ua @ 20.1.2015, 16:52)  Доброго времени суток! Прошу помочь разобраться в некоторых нюансах написания программы для pCO. Постараюсь максимально разложить вопрос. Имею небольшой опыт программирования контроллеров pCO3 и pCO5. Все проекты имели порядка 10-15 исполнительных механизмов, для этого вполне хватало дискретных выходов одного котроллера. Сейчас мне необходимо написать программу для гораздо большего количества выходов (порядка 50). Использовать связку контроллер + пачка плат расширения не целесообразно как с финансовой так и практической стороны. Поэтому выбор пал на комбинацию из двух pCO5 Extra large (29 + 29 выходов) и одного дисплея pGD1. Алгоритм управления оборудованием у меня почти готов, с этим проблем нет. Вопрос связан с распределением программной части между контроллерами. Подскажите как правильно поступать в подобной ситуации. Пока вижу 2 варианта:
вариант №1. Распределение выходов между контроллерами решается особой нумерацией этих выходов. В описании блока "Dout" говорится что нумерация дискретных выходов второго контроллера должна быть с приставкой +25. Тоесть, дискретный выход "NO1" второго контроллера должен быть под номером 26 и тд. Вот вроде бы и подсказка, подумал я, но, pCO5 extra large имеет 29 выходов. Что ж получается, 5 выходов на каждом контроллере выпадают с логики? Или тут нумерация сдвигается не на +25 а на +29? Проверить в симуляторе не могу, там симулируется работа только 1 контроллера. Так как датчики подключаются только к первому контроллеру, это нужно оформить программно (разрешить опрос аналоговых входов только первому контроллеру, второму контроллеру передавать значения с датчиков через pLan links в networkeditor) - подсмотрел в одной из Demo_solution . Также поступить и с остальными входами, влияющими на работу алгоритма. В данном варианте в каждый контроллер прошивается одинаковая программа, которую они синхронно обрабатывают (с учетом вышеописаных нюансов).
вариант №2. В рамках одной Solution создаю два разных проекта. В первом заложен алгоритм опроса датчиков\входов, а также основная часть всей программы. Во втором проекте почти пустая программа - чтение через pLan links переменных и передача их значений прямо на дискретные выходы. Грубо говоря, в этом варианте второй контроллер будет выполнять функцию платы расширения с доп выходами.
Какой из вышеописанных вариантов является рабочим и правильным? Какие системные переменные нужно использовать для правильной установки связи между двумя контроллерами?
Оборудование заказано и будет через несколько недель, а чтобы времени не терять пытаюсь разобраться. Но так как это мой первый опыт связки двух контроллеров в рамках одной промышленной установки, решил обратиться к более опытным автоматчикам, тоесть к Вам! Используйте 2 вариант. Так гораздо проще.
|
|
|
|
|
20.1.2015, 17:15
|
Группа: New
Сообщений: 15
Регистрация: 12.9.2013
Пользователь №: 205378

|
Цитата(Igorchello @ 20.1.2015, 16:12)  Используйте 2 вариант. Так гораздо проще. Спасибо! А как насчет системных переменных, есть какие нюансы или подводные камни?
|
|
|
|
|
20.1.2015, 22:49
|
Группа: Участники форума
Сообщений: 84
Регистрация: 16.3.2010
Пользователь №: 48554

|
Цитата(liquid_ua @ 20.1.2015, 17:15)  Спасибо! А как насчет системных переменных, есть какие нюансы или подводные камни? Есть системные переменные PLAN_ADRESS_SW. C помощью нее можете заранее выставить адрес pLan. Чтобы вручную потом не настраивать. Еще переменные PLAN_INFO и PLAN_STATUS_01_16. С их помощью можно сделать аварию об отсутствии связи по pLan. А так вроде все. Сложностей никаких нет.
|
|
|
|
|
20.1.2015, 23:35
|
Группа: New
Сообщений: 15
Регистрация: 12.9.2013
Пользователь №: 205378

|
Хорошо. Идея оповещать об обрыве связи pLan правильная, спасибо! Скажите, нужно ли мне использовать атомы RA_In_T, RA_Out, RD_Out? Или они нужны только в случае отправки переменных в скаду?
Есть вероятность что потребуется установить плату pCOWeb и отображать параметры установки на удаленном компьютере. Без красивых визуальных эффектов и анимаций, лишь табличное отображение температур. Думаю с простенькой страничкой html из скачанного примера я справлюсь, с настройкой переменных COM_BAUDRATE_BMS, и тд. тоже, а вот нужно ли использовать макроблок Carel_Protocol_Mng? а RA_In_T, RA_Out, RD_Out?
|
|
|
|
|
21.1.2015, 14:17
|
Группа: Участники форума
Сообщений: 84
Регистрация: 16.3.2010
Пользователь №: 48554

|
Цитата(liquid_ua @ 20.1.2015, 23:35)  Хорошо. Идея оповещать об обрыве связи pLan правильная, спасибо! Скажите, нужно ли мне использовать атомы RA_In_T, RA_Out, RD_Out? Или они нужны только в случае отправки переменных в скаду?
Есть вероятность что потребуется установить плату pCOWeb и отображать параметры установки на удаленном компьютере. Без красивых визуальных эффектов и анимаций, лишь табличное отображение температур. Думаю с простенькой страничкой html из скачанного примера я справлюсь, с настройкой переменных COM_BAUDRATE_BMS, и тд. тоже, а вот нужно ли использовать макроблок Carel_Protocol_Mng? а RA_In_T, RA_Out, RD_Out? RA_In_T, RA_Out, RD_Out предназначены для отправки переменных в SCADA. Но это устаревшие модули, ими пользоваться не обязательно. Настройку передачи переменных в BMS удобнее производить в Variable Wizard на вкладке Network. Макроблок Carel_Protocol_Mng предназначен для протокола Carel Master, т.е. для считывания переменных с Carel- устройств. Это не Ваш случай.
|
|
|
|
|
21.1.2015, 15:26
|
Группа: New
Сообщений: 15
Регистрация: 12.9.2013
Пользователь №: 205378

|
Igorchello, большое Вам спасибо!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvWgxEU
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvybpdW
Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума
|