PDA

Просмотр полной версии : ПЛК100 и множественный доступ



404NotFun
19.01.2015, 15:58
Добрый день!
Иметься плк100-220.P.L и простая задача управление двумя шлагбаумами c ПК. Реализовать несложно на CodeSYS, но на одном компьютере. Можно ли на данный ПЛК обращаться с 2х компьютеров с установленными одинаковыми версиями CodeSYS, выставив в настройках параметра соединения разные порты или все же придется делать через MasterSCADA?

Дмитрий Артюховский
19.01.2015, 17:38
Не одновременно. порт-то один для гетвея. Или написать свою програмку управления а на ПЛК открыть 2 сокета.

Scream
19.01.2015, 21:11
Codesys работает на 1200 порту и только, его "добавить" или сменить нельзя, к сожелению.
Покажите проект и чем правите, возможно сделаю вам управление без кдс.

404NotFun
20.01.2015, 08:36
Scream, а каким образом Вы планируете это сделат?. Есть контроллер - проекта пока нет, там будет лишь визуализация и управление 4мя DI, такой проект и проектом то не назвать.

Николаев Андрей
20.01.2015, 09:38
Просто добавьте ModBus TCP Slave, и опрашивайте его двумя мастерами на двух компах.

404NotFun
20.01.2015, 09:45
Николаев Андрей, спасибо. Буду реализовывать

404NotFun
20.01.2015, 10:14
Николаев Андрей, сейчас почитал как это реализуется. Я правильно понимаю, что после настройки ModBus TCP смогу просто поменять номер используемого порта (поумолчанию 502), в закладке Module Parameters элемента ModBus (slave)->Modbus[FIX]->TCP, для разных ПК и обеспечить одновременное управление?

Scream
20.01.2015, 14:57
Добавив слейв, решит проблему, но ставить кдс\скада ради одной кнопки + исходники и возможность изменить случайно\намеренно прошивку - жесть).

404NotFun, меняйте этот порт как хотите кроме 1200 и будет управлять с 2х.

404NotFun
09.06.2015, 16:54
Поднимая старую тему.
Проект успешно реализован и запущен, свою работу выполняет, но есть хотелки с обратной связью.
Имеется физическая кнопка при однократном нажатии открывает шлагбаум, при следующем нажатии соответственно закрывает. Кнопка - это грубо разрыв линии постоянного тока с напряжением 30В. Когда сотрудники открывают шлагбаум с кнопки и не закрывают его, то получается несоответствие физически он открыт, а в программе остается закрытым.
Самый очевидный вариант - подавать эти 30В на дискретный вход, который будет отображать состояние шлагбаума. Но их два, а дискретные входа не парные.
Можно ли как-то подключить без использования реле?
И выставляю проект на ваш суд, основное место занимает визуализация и для работы нужна библиотека Util_no_Real.lib присутствует в архиве

melky
10.06.2015, 09:31
404NotFun вы просто должны при физическом нажатии кнопки менять какую-то переменную, когда ПК опрашивают и видят, что шлагбаум открыт, менять показания визуализации и давать возможность закрыть с компа.
Собственно переменная у вас есть - это выход триггера в программе, привязанный к физической кнопке + выхода самого ПЛК.

404NotFun
10.06.2015, 10:13
404NotFun вы просто должны при физическом нажатии кнопки менять какую-то переменную, когда ПК опрашивают и видят, что шлагбаум открыт, менять показания визуализации и давать возможность закрыть с компа.
Собственно переменная у вас есть - это выход триггера в программе, привязанный к физической кнопке + выхода самого ПЛК.

Как программно реализовать сложности нет, мне не понятно как физически завести две пары по 30В в DI, не могу же я по минусовым проводам их соединить на входе 0-0 (3 и 4 клеммы), а плюсовые в 5 и 6.
Разность потенциалов, разве нет?

Вольд
10.06.2015, 10:18
Как программно реализовать сложности нет, мне не понятно как физически завести две пары по 30В в DI, не могу же я по минусовым проводам их соединить на входе 0-0 (3 и 4 клеммы), а плюсовые в 5 и 6.
Разность потенциалов, разве нет?
Сделай развязку на диодах.

melky
10.06.2015, 10:54
404NotFun вопрос, а зачем ?

у вас программа вообще никак не контролирует положение шлагбаума что ли ?
я так понял, что когда кто-то кнопкой открыл шлагбаум об этом не узнают ПК, но ведь сама программа же дает команду на открытие а последующее нажатие дает команду на закрытие - разве уже из реализованного функционала нельзя выдернуть переменную для информации ПК ?

404NotFun
10.06.2015, 12:36
melky, просто программа дублирует физические кнопки.
Имеется большая территория. Рядом со шлагбаумами стоит пост охраны, в ней размещены кнопки управления. Когда сотрудника нет на месте, соответственно открыть выезд некому, а оставлять открытым проезд нежелательно. Поэтому был поставлен ОВЕН и возможность управления с другого поста охраны. И получается, что нажатие физических кнопок не фиксируется в программе. А положение самих шлагбаумов видно по камерам.
Вольд, спасибо за подсказку самое бюджетное решение.

melky
10.06.2015, 12:56
404NotFun а как у вас дается команда с ПЛК на открытие и закрытие ? по одному выходу импульс или 2 разных выхода ?
изменить то программу всегда можно.

404NotFun
11.06.2015, 11:52
404NotFun а как у вас дается команда с ПЛК на открытие и закрытие ? по одному выходу импульс или 2 разных выхода ?
изменить то программу всегда можно.
Ваши вопросы открыли скрытую проблему, кнопки и ПЛК заведены параллельно на контакты шлагбаума, тут обратную связь нужно брать с самого шлагбаума. Придется менять кабель на 4х проводный на каждый из шлагбаумов, это решит все вопросы.

PavelGO
24.06.2015, 14:05
Доброго времени суток. Вроде по теме и не оффтоп: Точно ли на плк100 можно сделать два TCP SLAVE(502 и 503 к примеру)? 485 как мастер уже задействован, а нужно еще с панели вайнтека и одновременно с ПК(прога с модбас мастер) читать и писать в ПЛК.

capzap
24.06.2015, 14:17
Доброго времени суток. Вроде по теме и не оффтоп: Точно ли на плк100 можно сделать два TCP SLAVE(502 и 503 к примеру)? 485 как мастер уже задействован, а нужно еще с панели вайнтека и одновременно с ПК(прога с модбас мастер) читать и писать в ПЛК.

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

Scream
24.06.2015, 14:20
Всё будет норм, запрашивайте не чаще 10 раз в сек (лучше 5) и норм. (по своему опыту)

Валенок
24.06.2015, 14:35
Всё будет норм, запрашивайте не чаще 10 раз в сек (лучше 5) и норм. (по своему опыту)
Причем тут частота запроса если это - модбас, хоть и tcp ? Есть ответ - есть следующий запрос. Можно и на 40..60 Гц выйти

Scream
24.06.2015, 14:43
Причем тут частота запроса если это - модбас, хоть и tcp ? Есть ответ - есть следующий запрос. Можно и на 40..60 Гц выйти
Я говорю о скорости интерфейса, а вы о протоколе, модбас не модбас, разницы нет.

А вы попробуйте опрашивать 40 Гц. Через некоторое время плк просто перестанет отвечать...
Естественно закиньте какую нить програмку, выставите цикл ~10мс и опрос порядка 20 регистров, посмотрим.

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

PavelGO
24.06.2015, 14:45
Спасибо за опыт. Нет возможности снять оборудование в работе, а выбрать еще уже нужно. Опрашивать буду 1 раз в сек. с перерывами на изменение профилей ПИД. Главное чтобы пиды не поплыли изза изменения времени цикла?

Scream
24.06.2015, 14:50
Не изменяйте время, если этого не требуется.
В конфигураторе смотрите на статистику, там будет показано сколько осталось и флажок засветится если мало времени.

Валенок
24.06.2015, 15:25
А вы попробуйте опрашивать 40 Гц. ...выставите цикл ~10мс и опрос порядка 20
Зачем мне пробовать если я с этим работаю )). Обычно около 60Гц. Цикл ПЛК традиционно 0 (зачем больше ?). Опрос ... за раз ? 125 регистров (чтение), зачем меньше ?. ПК-приложение одновременно работает с 4..10 ПЛК. И так в нескольких регионах.

некоторое время плк просто перестанет отвечать..
В смысле через несколько лет ? Наверно да. Ведь у ПЛК это заявленный срок жизни.


Естественно закиньте какую нить програмку,
Само собой. Каждый из ПЛК работает мастером по 485 с 2..6-ю модулями

Вольд
24.06.2015, 15:33
ПК-приложение одновременно работает с 4..10 ПЛК.
А приложение для ПК на чем сделано ?

Валенок
24.06.2015, 15:35
Делфи 7 ........

Валенок
24.06.2015, 15:41
Главное чтобы пиды не поплыли изза изменения времени цикла?
Непонятна взаимосвязь ПИДов и времени цикла. Ничего не говорит "dt" ?

Вольд
24.06.2015, 15:54
Делфи 7 ........
А для организации обмена с ПЛК какая компонента в приложении используется ?

Валенок
24.06.2015, 16:04
ttcpclient

Scream
24.06.2015, 16:35
Зачем мне пробовать если я с этим работаю )). Обычно около 60Гц. Цикл ПЛК традиционно 0 (зачем больше ?). Опрос ... за раз ? 125 регистров (чтение), зачем меньше ?. ПК-приложение одновременно работает с 4..10 ПЛК. И так в нескольких регионах.
...


60 в секунду опрашивается плк через ethernet с 10 плк * 125 регистров * 2 байта + ~6 байт протокола .... очень интересно

Честно сказать, сам писал и на делфях и на C и на java, такой скорости не видел не на 100, не на 150, не на 160 плк.

Если Вас не затруднит, скиньте программу codesys и делфи (какой нибудь простой счетчик модбас запросов).

Валенок
24.06.2015, 16:58
Потребуется время ))

Вольд
24.06.2015, 17:13
ttcpclient
А разве такая в палитре компонент Delphi 7 есть ?

Scream
24.06.2015, 17:14
Потребуется время ))

Да, конечно. Будем ждать.

Scream
24.06.2015, 17:15
А разве такая в палитре компонент Delphi 7 есть ?

я так понял это стандартный TcpClient.

Валенок
24.06.2015, 20:47
Ну вот. Без изысков. Успел даже поужинать

Валенок
24.06.2015, 20:47
я так понял это стандартный TcpClient.
Ну да. .........

Scream
25.06.2015, 10:38
Ну вот. Без изысков. Успел даже поужинать

Млин, а исходник к delphi можно? Как узнать скорость опроса, сниферить?

Вольд
25.06.2015, 10:41
Ну вот. Без изысков. Успел даже поужинать
Связи нет и приложение для ПК зависло.

Scream
25.06.2015, 11:00
Связи нет и приложение для ПК зависло.

Всё робит. Гц показывает и в плк и в проге.
И когда связи небыло не висло.

Да, сниффер показывает ~120 пакетов в секунду от плк до пк, половина из них TCP, вторая - Modbus. Не пойму что за пакеты TCP???
От пк до плк идет ~57 пакетов в секунду.

Думаю что Валенок мой кумир прям. Таких скоростей я не видел, но сорцы хотелось бы посмотреть.

Валенок
25.06.2015, 11:21
Связи нет и приложение для ПК зависло.
А в чем выразилось ? Если надписи "нет связи" - нет связи. См. локальное соединение/config.ini (ниже)/ip плк

Дико извиняюсь - не вложил readme
Приложение пытается писать в 1..10 ПЛК в регистры 0..(N-1) разом
ip и N можно поправить в config.ini, если его нет - просто запустить и закрыть приложение, config создается в папке запуска, ip по умолчанию 10.0.6.101..110 - поправьте и перезапустите приложение
ip с пустой строкой - к этому плк нет обращений
Пишется один счетчик во все N регистров каждого из ПЛК . После удачной записи счетчик++

Соббсно в он-лайне КДС - все видно. При наличии связи - в онлайне КДС видны частота и периоды, в приложении - частота и счетчик