Для общения с контроллером у BECKHOFF разработан специальный протокол обмена данными ADS на базе TCP/IP. Протокол открытый. Инструментарий для работы с этим протоколом предоставляется бесплатно в виде файлов библиотек и поддерживает DLL, OCX, VB Script, J Script, .NET, Java для Windows, а также есть open source проект для реализации этого протокола под Linux.
Где найти пример работы с протоколом на java под android?
В частности интересует чтение и запись по адресу фиксированной памяти контроллера. Например код на VBScript:
Dim TcClient, VarBool, VarInt16
Set TcClient = CreateObject("TCSCRIPT.TcScriptSync") ' загружаем COM объект
Call TcClient.ConnectTo("192.168.208.188.1.1", 800) ' подключаемся к контроллеру на 800 порт
VarInt16 = TcClient.ReadInt16(&H4020, 0) ' читаем целое двухбайтовое число из памяти
VarBool = TcClient.ReadBool(&H4021, 9) ' читаем значение переменной MySuperBool
Call TcClient.WriteBool(&H4021, 9, NOT VarBool) ' меняем значение булевой переменной на противоположное
Call TcClient.WriteInt16(&H4020, 0, VarInt16 + 1) ' увеличиваем значение целого на единицу