Форум программистов, компьютерный форум, киберфорум
Контроллеры PLC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
-1 / 6 / 0
Регистрация: 06.03.2015
Сообщений: 7
1

Порекомендуйте архитектуру взаимодействия программы верхнего уровня для связи со станком (ПЛК)

08.08.2015, 09:48. Показов 1150. Ответов 7
Метки нет (Все метки)

Здравствуйте.
Стоит задача написать программу управления станком, но возникла проблема, как организовать программу чтобы не тормозила из за обратной связи.
Порекомендуйте архитектуру взаимодействия программы верхнего уровня для связи со станком (ПЛК)

Красными квадратами отмечены участки где программа должна ожидать данных из ПЛК.

Вопрос. Как обычно делают такие вещи? Все программы для ПК пишутся в Delphi.
Пока вижу два варианта.
1. Циклически проверять (типа как классы задач на контроллере) данные и если данные пришли отрабатывать их в активном окне программы
2. При отправки запроса на ПЛК передавать какой-то ID запроса, а после получения ответа слать широковещательное сообщение(TMessage на delphi) всем формам (с этим ID) о том что данные пришли, и продолжать выполнять алгоритм который начат при отправке запроса.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2015, 09:48
Ответы с готовыми решениями:

ПО верхнего уровня для Arduino
Нужно создать программу для Arduino Mega 2560, НО, не для прошивки его а программу на компьютер....

Порекомендуйте форму обратной связи для Joomla 3
Основные требования: бесплатная (или условно бесплатная), простота настройки, возможность выбрать...

Использование входов ПЛК Mitsubishi Aplpha 2 для прямого контроля уровня воды
Здраствуйте. Имеется в наличии контроллер Mitsubishi Aplpha 2 -24VDC 8In4Out Можно ли на нем...

Нет сихронного взаимодействия двух ПЛК Simatic S5-135U
Есть такая проблема: на работе есть станок который перематывает нити с нескалких барабанов на один....

__________________
7
10214 / 6595 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
08.08.2015, 10:06 2
чтобы не тормозила из за обратной связи
Время таймаута на обработку запроса ПЛК конечно же есть и может составлять от единиц до сотен мс в зависимости от скорости обмена и модели ПЛК. Но, как правило, это время строго лимитировано и может задаваться в конфигураторе, например. Это время указано в ТТХ на конкретный ПЛК в документации, о котором вы умолчали.

Почему вы решили, что программа верхнего уровня должна или тормозит? Вы используете потоки для работы с портом или нет? Если вы работаете с какой-либо оберткой над WinAPI вызовами для взаимодействия с последовательным портом, то события приема данных там уже предусмотрены и работают в отдельном потоке. Никаких торможений основного приложения быть не может.

Показывайте код.

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

и если данные пришли отрабатывать их в активном окне программы
обработку данных никогда не делают в VCL. Если обработка занимает длительное время, то используется буфер для накопления данных и отдельный поток, в этом же потоке и производят визуализацию на форме приложения, при необходимости.

PascalScada. Библиотека для работы с ПЛК под Lazarus (Windows/Linux/FreeBSD)
Работа с Modbus RTU
Modbus library over TCP/IP for C#/Delphi/Lazarus/PHP/Python
Libmodbus. Библиотека Modbus for Linux, Mac OS X, FreeBSD, QNX and Win32
RS-485. Работа с Modbus протоколом...

+

Работа с com port
Работа с ком портом
Qt. Работа с COM портом
Lazarus + com порт + win32
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28023 / 15750 / 971
Регистрация: 15.09.2009
Сообщений: 67,775
Записей в блоге: 78
08.08.2015, 10:13 3
для этого ПК не нужен, от слова "совсем".
разве что для задания начальных условий.
ну может для контроля (визуализация)
ну еще старт-стоп цикла.
всеостальное реализуется средствами ПЛК.
0
-1 / 6 / 0
Регистрация: 06.03.2015
Сообщений: 7
08.08.2015, 14:34  [ТС] 4
спасибо за советы.
Цитата Сообщение от magirus Посмотреть сообщение
для этого ПК не нужен
ПК нужен потому что на станок попадает только геометрия детали, оператор может исправлять деталь, после чего команды уйдут в станок(в ПЛК)

Цитата Сообщение от raxp Посмотреть сообщение
Почему вы решили, что программа верхнего уровня должна или тормозит?
при подключении к ПЛК мне надо получать с него параметры. обмен длится данными от 100 до 800 мс. эти данные мне надо выводить на форму, а она будет подвисать на время пока ждет данные.

думаю сделать буфер. при первом использовании(т.е. при открытии формы) наполнять пустыми(дефолтными) данными, отображать с форму этими пустыми данными и отправлять запрос на получение данных со станка.
по завершению обмена драйвер(работающий в своем потоке) перепишет буфер и уведомит форму о том что данные изменились(только если данные отличаются от тех что в буфере), и теперь форма может получить новые данные из буфера и обновиться.

Цитата Сообщение от raxp Посмотреть сообщение
Показывайте код.
кода пока почти нет , только куча заготовок для драйвера.
0
569 / 139 / 36
Регистрация: 12.03.2012
Сообщений: 397
08.08.2015, 15:17 5
Если алгоритм организован так, как можно понять из этой фразы:
оператор может исправлять деталь, после чего команды уйдут в станок(в ПЛК)
, то команды на ПЛК можно передавать "пешим курьером", скорости от этого не убудет.
0
10214 / 6595 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
08.08.2015, 21:03 6
обмен длится данными от 100 до 800 мс. эти данные мне надо выводить на форму, а она будет подвисать на время пока ждет данные.
не будет, если реализовано так как я написал выше.

только куча заготовок для драйвера.
тут драйвер и даром не впал.

кода пока почти нет
ссылки даны для кого? Читайте, впитывайте.

ПК нужен потому что на станок попадает только геометрия детали, оператор может исправлять деталь, после чего команды уйдут в станок(в ПЛК)
magirus имел ввиду, что непосредственный контроль промышленного станка из под машины с не реалтайм ОС чреват. ПК служит лишь для передачи общих команд, диагностики и визуализации. Контроль же станка осуществляет железный автономный контроллер.
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28023 / 15750 / 971
Регистрация: 15.09.2009
Сообщений: 67,775
Записей в блоге: 78
08.08.2015, 21:15 7
Цитата Сообщение от snegok74 Посмотреть сообщение
оператор может исправлять деталь,
не может.
исправлять деталь надо на стадии создания "рецепта"
0
78 / 81 / 6
Регистрация: 30.10.2014
Сообщений: 229
10.08.2015, 18:09 8
Цитата Сообщение от snegok74 Посмотреть сообщение
при подключении к ПЛК мне надо получать с него параметры. обмен длится данными от 100 до 800 мс. эти данные мне надо выводить на форму, а она будет подвисать на время пока ждет данные.
с эти обычно не парятся в скадах и на панелях.
но если уж очень смущает задержка, почему бы не сделать всплывающее окошко с прогрессбаром?
Цитата Сообщение от snegok74 Посмотреть сообщение
ПК нужен потому что на станок попадает только геометрия детали
Время на загрузку рецепта в ПЛК в несколько секунд не смутит никого, и опять прогрессбар выручит.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2015, 18:09

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Порекомендуйте программы для контроля состояния windows
И снова всем привет! Возникла необходимость в программах отслеживающих состояние компьютера....

Спецификатор верхнего уровня const
Поясните, пожалуйста, этот пример: const int ci=42; const int *p2=&ci; const int *const p3=p2;...

Невидимы папки верхнего уровня
Привет Что-то (..., вирус, ...) сделало невидимыми названия папок Но при наборе пути в...

Домен верхнего уровня .org
Могу ли я вести коммерческую деятельность, зарегистрировав домен второго уровня на .org? Какие...

Описание верхнего уровня на VHDL
Доброго времени суток. Вопрос такой: как описать верхний уровень на VHDL? Пытаюсь написать...

Определить домен верхнего уровня
Реализуйте функцию, которая определяет домен верхнего уровня с email адреса и возвращает в виде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.