** OPC UA python 테스트 **
0. python으로 OPC UA의 서버-클라이언트 통신을 테스트한다
1. https://dibrary.tistory.com/39 (서버부) 참고해서 실행
-단, 통신 포트를 4842에서 안되서 12346으로 해서 성공하였음
2. 아래 UaExpert 설치하여 서버에서 발생하는 데이터를 모니터링 할 수 있음
-OPC UA python용어들에 대한 설명은 https://red-nose-cousin.tistory.com/4 참고함.
3. https://dibrary.tistory.com/38 (Client부) 참고해서 서버에서 오는 신호를 확인 가능
** UaExpert 설치 **
0. UaExpert는 OPC UA python의 서버 부분 실행 후에, 발생하는 데이터를 모니터링하는 툴
2. 회원 가입함
3. Download -> OPC UA Clients -> UaExpert를 다운로드
4. Windows10에 설치 후, 실행
매뉴얼의 12~15페이지 참고.
- UaExpert실행->Project>Server선택후 마우스 우클릭 'Add'선택->Local마우스 우클릭 후 Edit Discovery URL선택->IP와 Port number입력
# Server부 프로그램
import time
from opcua import Server
server = Server()
url = "opc.tcp://127.0.0.1:12346"
server.set_endpoint(url)
name = "OPCUA_SIMULATION_SERVER"
addspace = server.register_namespace(name)
node = server.get_objects_node()
param1 = node.add_object(addspace, "251-AM-001")
param2 = node.add_object(addspace, "251-AM-002")
normal_operation1 = param1.add_variable("ns=1; s=1630AT155-NO", "normal_operation", 0)
normal_operation2 = param2.add_variable("ns=2; i=34", "test_node", 12)
normal_operation2.set_writable()
normal_operation1.set_writable()
server.start()
# Client부 프로그램
from opcua import Client
import time
url = "opc.tcp://127.0.0.1:12346"
client = Client(url)
client.connect()
cnt = 0
while cnt <= 2:
normal = client.get_node("ns=1; s=1630AT155-NO")
print(normal.get_value())
time.sleep(2)
normal.set_value(22)
print(normal.get_value())
time.sleep(4)
cnt += 1
cnt = 0
while cnt <= 2:
normal = client.get_node("ns=2; i=34")
print(normal.get_value())
time.sleep(2)
normal.set_value(12346)
print(normal.get_value())
time.sleep(4)
cnt += 1
[References]
0. OPCUA github: https://github.com/FreeOpcUa/python-opcua
1. Python server: https://dibrary.tistory.com/39
2. Python client: https://dibrary.tistory.com/38
3. UaExpert 다운 받는곳: https://www.unified-automation.com/
4. 용어들 쉽게 설명: https://red-nose-cousin.tistory.com/4
6. 아주 쉬운 PLC 설명(깹TV): https://www.youtube.com/watch?v=__EegGRf-aM
7. Siemens S7 OPC UA: https://www.youtube.com/watch?v=LceDwfCHig0&t=186s
댓글 없음:
댓글 쓰기