Вход

Просмотр полной версии : Использование ПЛК110 как модуля ввода/вывода.



StarikLogan
24.11.2016, 11:54
Доброго времени суток!
Подскажите новичку. Если я использую один ПЛК110 как мастер, а второй ПЛК110 как модуль ввода/вывода (согласен глупо, система делается из того, что есть), то как мы будем обращаться к выходам/входам? Допустим в МК110 входы/выходы опрашивают с помощью регистров 50/51. В моем случае будет что-то подобное? И какие будут адреса подчиненного устройства (ПЛК110)?

lazy
24.11.2016, 12:08
Нет, тебе придется отправить(привязать, подать) входы/выходы ведомого ПЛК к тому интерфейсу где он собственно будет слейв. Какие это будут регистры это ты сам определишь проекте.

StarikLogan
24.11.2016, 12:32
27762
Допустим я сконфигурированный 2 вх и 1 вых, присвоил им регистры 30,31 и 40, для примера. Если я иду в правильном направлении, то как потом привязать адрес 30 к дискретному входу на втором контроллере?

petera
24.11.2016, 12:50
27762
Допустим я сконфигурированный 2 вх и 1 вых, присвоил им регистры 30,31 и 40, для примера. Если я иду в правильном направлении, то как потом привязать адрес 30 к дискретному входу на втором контроллере?

Сначала нужно сделать во втором ПЛК слейв, т.к. номера регистров в слейве начинаются с 0.
Получится некая картина - карта распределения регистров во втором ПЛК
http://www.owen.ru/forum/attachment.php?attachmentid=12345&d=1395648726

А уже затем в первом ПЛК в мастере использовать получившиеся адреса регистров.

Иначе если

"присвоил им регистры 30,31 и 40"
придется в сейве второго ПЛК набивать 30 никому не нужных регистров пустышек.

Кроме того, по Вашей картинке, в мастере используются Real input/output модули, а это никак ни дискретные значения, а числа с плавающей точкой!

Ну и самое главное.
Голый ПЛК использовать не получится!
Во втором ПЛК должна быть программа, которая будет читать физические входы и раскладывать в слейве в соответствующие, например, 8bits модули.

lazy
24.11.2016, 12:55
Я конфигуратор не использую в проектах поэтому могу ошибиться. В нем, по моему, каждому модулю и входу можно давать имена прямо в конфигураторе которые затем можно использовать в проекте. Обзываем первый вход ПЛК как INP_1, а Register input module как S_INP_1, а в PLC_PRG пишем:
S_INP_1 := INP_1;
как то так, приблизительно, может быть на приведение типов ругаться будет.
Лучше все входа передавать одним словом, тогда:
S_INP_1.0 := INP_1;
S_INP_1.1 := INP_2;
итд.
С выходами так же только наоборот )

petera
24.11.2016, 14:06
Я конфигуратор не использую в проектах поэтому могу ошибиться. В нем, по моему, каждому модулю и входу можно давать имена прямо в конфигураторе которые затем можно использовать в проекте. Обзываем первый вход ПЛК как INP_1, а Register input module как S_INP_1, а в PLC_PRG пишем:
S_INP_1 := INP_1;
как то так, приблизительно, может быть на приведение типов ругаться будет.
Лучше все входа передавать одним словом, тогда:
S_INP_1.0 := INP_1;
S_INP_1.1 := INP_2;
итд.
С выходами так же только наоборот )
Читайте внимательно!

Допустим я сконфигурированный 2 вх и 1 вых, присвоил им регистры 30,31 и 40, для примера. Если я иду в правильном направлении, то как потом привязать адрес 30 к дискретному входу на втором контроллере?
Речь идет о втором контроллере из которого нужно читать входы и в который нужно писать выходы.

StarikLogan
24.11.2016, 14:16
Спасибо, буду пробовать)

Филоненко Владислав
24.11.2016, 18:29
Если Вы используете 2 контроллера в связке, почему не пользуетесь сетевыми переменными? Это интегрированный и удобный механизм CoDeSys

evgens4
12.12.2016, 10:19
Вот с этого момента поподробней.

Николаев Андрей
12.12.2016, 13:22
http://www.owen.ru/forum/showthread.php?t=13588
Пример с UDP