Как вы передаете сообщения в ПЛК? - PullRequest
1 голос
/ 24 февраля 2012

У меня нет опыта работы с ПЛК, но для следующего проекта, которым я буду заниматься, мне нужно будет разработать приложение, которое будет взаимодействовать с ПЛК. По сути, я получу XML-сообщение, которое я должен передать в ПЛК. Я не буду заниматься разработкой кода ПЛК, но мне хотелось бы понять, как я могу проектировать структуры данных ПЛК (максимально приближенно напоминающие схему xml) и отправлять сообщения в ПЛК.

Язык программирования приложения еще не выбран, поэтому пример на любом языке подойдет.

1 Ответ

6 голосов
/ 24 февраля 2012

Это будет несколько отличаться в зависимости от используемого вами языка, платформы и типа ПЛК.Общий интерфейс выглядит следующим образом:

      communication                    OPC/COM/
        protocol                       OLE/ETC
[PLC] <-----------> [tag/data server] <-------> [YourGUIApp]

Общая идея заключается в том, что ПЛК имеет рабочий набор памяти для битов, слов и других типов данных.Через некоторый протокол связи (Modbus, FINS, KSequence и т. Д.) Локальная системная служба на вашем HMI / ПК сохранит локальный образ определенного, определенного пользователем, набора областей памяти в ПЛК, из которого ваше приложение должно либо прочитатьили напишите.С сервером будет связана библиотека разработки, которую вы можете импортировать в свой проект и использовать для доступа к ПЛК через эту локальную службу.

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

К сожалению, пока вы не выбралиПЛК и язык может быть трудно выбрать оптимальную структуру для ваших данных.В том, как работает вышеупомянутый процесс между производителями, есть немало различий.Не зная этого, я думаю, что вы можете создавать любые структуры, которые вам нравятся, в вашем приложении, вам просто может понадобиться добавить еще один слой в какой-то момент, чтобы сделать последний шаг между вашей структурой данных и вызовом библиотеки PLC.В конце концов, вы просто передаете простые переменные туда и обратно - логические, целые числа, числа с плавающей точкой и т. Д.

...