- 19.12.2023
- 5
- 0
- 7
Репутация:
- Автор темы
- #1
Привет, уважаемый читатель!
Хочу немного поведать тебе как через Python в локальной сети можно подключиться к PLC от Allen Bradley.
В свое время перепробовал кучу разных библиотек, но в один прекрасный день нашлась та самая "pycomm3".
И так, PyComm3 имеет три драйвера: SLCDriver, LogixDriver и универсальный CIPDriver. (Почти все семейства контроллеров общаются по CIP, чтобы понять какой драйвер вам нужен, можно прочитать документацию на )
Мне повезло и мое семейство контроллеров общалась на "LogixDriver".
Первое что необходимо сделать, установить библиотеку PyComm3 через pip:
Создаем переменную PLC и присваиваем ей параметры подключения в следующем виде - LogixDriver('IP нашего плк в локальной сети')
Затем создаем функцию подключения к нашему PLC:
Если мы вызовем функцию Connection_to_plc() и у нас правильно указан IP-адрес, мы получим следующий ответ (Имя программы и редакцию):
ВАЖНО!
Для опроса конкретных тегов вам нужен проект от PLC и понимание того, что вы делаете!
Не пытайтесь менять значение тегов если вы не уверены в последствиях!
Создадим функцию опроса тэга:
При ее вызове в "resultRead" мы получим список вида:
Если мы выполним:
Мы получим значение "TRUE"!
В целом, этого базиса должно быть достаточно для понимания основ.
Код целиком:
Данную библиотеку можно использовать для построения аналитики работы оборудование, очень удобно использовать совместно с ТГ ботом.
При помощи функции "plc.write" можно менять значение тегов в зависимости от типов данных и удаленно управлять оборудованием если это необходимо.
Спасибо за прочтение!
Хочу немного поведать тебе как через Python в локальной сети можно подключиться к PLC от Allen Bradley.
В свое время перепробовал кучу разных библиотек, но в один прекрасный день нашлась та самая "pycomm3".
И так, PyComm3 имеет три драйвера: SLCDriver, LogixDriver и универсальный CIPDriver. (Почти все семейства контроллеров общаются по CIP, чтобы понять какой драйвер вам нужен, можно прочитать документацию на )
Мне повезло и мое семейство контроллеров общалась на "LogixDriver".
Первое что необходимо сделать, установить библиотеку PyComm3 через pip:
Далее создаем наш документ main.py и импортируем в него нашу библиотеку:pip install pycomm3
Python:
from pycomm3 import LogixDriver
Создаем переменную PLC и присваиваем ей параметры подключения в следующем виде - LogixDriver('IP нашего плк в локальной сети')
Python:
plc = LogixDriver('192.168.0.1')
Затем создаем функцию подключения к нашему PLC:
Python:
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 и понимание того, что вы делаете!
Не пытайтесь менять значение тегов если вы не уверены в последствиях!
Создадим функцию опроса тэга:
Python:
def PollingTag():
resultRead = plc.read('AL_POS[17].6')
result = resultRead[1]
Для построения какой либо логики нас интересует значение "value", его мы получаем выдергивая первый элемент из списка.(value=TRUE,tag='AL_POS[17].6', type='BOOL', error=None)
Если мы выполним:
Код:
print(result)
В целом, этого базиса должно быть достаточно для понимания основ.
Код целиком:
Python:
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" можно менять значение тегов в зависимости от типов данных и удаленно управлять оборудованием если это необходимо.
Спасибо за прочтение!
Последние темы в этом разделе:
- [Сергей Спирёв] [Stepik] Библиотека Seaborn. Статистическая визуализация данных в Python (2025)
- [А.Ерошенко, Л.Данилова и др.] Курс по автоматизации тестирования на JavaScript + Playwright (2025)
- [Михаил Крыжановский] [Stepik] Телеграм-боты на Python: продвинутый уровень (2024)
- [IT Start] Курс по Python 3 (2024)
- [А. Ерошенко, С. Хомутинин, С. Васенков] Автоматизация тестирования на Python (2024)
- [IT Start] Создание графического интерфейса в Python 3 с Tkinter (2024)
- [Дмитрий Лаврик] PHP – ООП (2021)
- Параллелизм в Python. Заметка на русском с примерами кода.
- Крутая, содержательная шпаргалка с примерами по веб-фреймворку Django
- Асинхронный Python и Asyncio - Молчанов (2023)