PLC Allen Bradley подключение с помощью Python

от автора

Привет, уважаемый читатель!

Хочу немного поведать тебе как через Python в локальной сети можно подключиться к PLC от Allen Bradley.

В свое время перепробовал кучу разных библиотек, но в один прекрасный день нашлась та самая «pycomm3».

И так, PyComm3 имеет три драйвера: SLCDriver, LogixDriver и универсальный CIPDriver. (Почти все семейства контроллеров общаются по CIP, чтобы понять какой драйвер вам нужен, можно прочитать документацию на офф сайте)

Мне повезло и мое семейство контроллеров общалась на «LogixDriver».

Первое что необходимо сделать, установить библиотеку PyComm3 через pip:

pip install pycomm3

Далее создаем наш документ main.py и импортируем в него нашу библиотеку:

from pycomm3 import LogixDriver

Создаем переменную PLC и присваиваем ей параметры подключения в следующем виде — LogixDriver(‘IP нашего плк в локальной сети’)

plc = LogixDriver('192.168.0.1')

Затем создаем функцию подключения к нашему PLC:

def Connection_to_plc():     try:         plc.open() #Открываем подключение         print(plc) #Выводим информацию об PLC     except:         print('Error')         pass

Если мы вызовем функцию Connection_to_plc() и у нас правильно указан IP-адрес, мы получим следующий ответ (Имя программы и редакцию):

Program Name: CONTROL_8510, Revision: {‘major’: 32, ‘minor’: 11}

ВАЖНО!

Для опроса конкретных тегов вам нужен проект от PLC и понимание того, что вы делаете!

Не пытайтесь менять значение тегов если вы не уверены в последствиях!

Создадим функцию опроса тэга:

def PollingTag():     resultRead = plc.read('AL_POS[17].6')     result = resultRead[1]

При ее вызове в «resultRead» мы получим список вида:

{‘value=TRUE’, ‘tag=’AL_POS[17].6», ‘type=’BOOL», ‘error=None’}

Для построения какой либо логики нас интересует значение «value», его мы получаем выдергивая первый элемент из списка.

Если мы выполним:

print(result)

Мы получим значение «TRUE»!

В целом, этого базиса должно быть достаточно для понимания основ.

Код целиком:

from pycomm3 import LogixDriver import time plc = LogixDriver('IP твоего PLC')  def Connection_to_plc():     try:         plc.open()         print(plc)         time.sleep(10)     except:         print('Error')         pass  def PollingTag():     resultRead = plc.read('Вставь свой тег сюда!')     result = resultRead[1]     print(result)     time.sleep(10)  def main():     Connection_to_plc()     while True:         PollingTag()  main()

Данную библиотеку можно использовать для построения аналитики работы оборудование, очень удобно использовать совместно с ТГ ботом.

При помощи функции «plc.write» можно менять значение тегов в зависимости от типов данных и удаленно управлять оборудованием если это необходимо.

Спасибо за прочтение!


ссылка на оригинал статьи https://habr.com/ru/articles/783908/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *