티스토리 뷰

SCADA

C# 기반 동운 HMI의 PLC 연관 모듈

록개발자 2018. 11. 12. 14:52

C# 기반의 동운 HMI는 데이터의 수집과 편집, 전달등을 수행하는 서버와 화면 표시 등의 사용자 인터페이스를 담당하는 클라이언트 모두 C# 닷넷 기반으로 작성되어 있어 비주얼스튜디오 기반으로 편리하게 개발을 할 수 있는 장점과 함께 디버깅이나 성능 분석등의 다양한 장점을 얻을 수 있습니다. 무엇보다 동운 HMI가 상용 스카다 시스템과 비교할 수 있는 특성은 DataBase 모듈과 PLC 및 장치 접속 모듈을 통한 유연한 시스템 확장성입니다.("빠른 개발, 무한 확장의 동운 HMI 1.0" 바로가기)

동운 HMI 1.0은 데이터베이스 모듈로 MySQL 모듈을 기본 장착하고 있으며 PLC 및 장치 접속 모듈로는 ModBUS TCP 모듈을 장착하고 있습니다. 본 글에서는 동운 HMI에 장착가능한 PLC 연관 오픈소스 모듈을 정리하여 동운 HMI의 유연한 시스템 확장성을 가늠해 볼 수 있도록 하겠습니다.

 

■ NModbus
- https://code.google.com/p/nmodbus/
- 라이선스 : MIT License

Modbus 서버의 역할을 수행하는 PLC나 기타 서버를 접속할 수 있도록 해줍니다. 직렬 통신으로는 Serial ASCII, Serial RTU, Serial over USB ASCII, Serial over USB RTU를 지원하고 TCP/IP는 TCP, UDP 프로토콜을 지원합니다. 동운 HMI에는 Modbus TCP를 기본 장착하고 있으며 다른 통신 프로토콜은 필요에 따라 간편하게 확장할 수 있습니다.

http://www.plcsimulator.org/ 를 통해서 무료인 Modbus 시뮬레이터를 설치하면 실제 PLC 접속과 같은 환경으로 시스템을 테스트 할 수 있습니다.

적용 대상 PLC나 장비가 Modbus 프로토콜을 지원 한다면 이 모듈을 통해서 동운 HMI를 사용할 수 있습니다. 미쯔비씨의 MELSEC-Q 시리즈의 경우 QJ71MT91(MODBUS TCP Module)을 통해 접속할 수 있으며 오므론의 CP 시리즈의 경우 CP1W-MODTCP61(Modbus/TCP Adapter)를 통해 접속할 수 있습니다. LS MASTER-K는 MODBUS RTU 방식으로 시리얼 접속할 수 있습니다. 지멘스의 S7-300, S7-400 시리즈도 이더넷 카드와 연관 CPU 버전이 맞으면 Modbus TCP를 지원하고 Allen Bradley의 경우에는 Micrologix 1400 시리즈가 Modbus TCP를 지원합니다.



■ LIBNODAVE
- https://sourceforge.net/projects/libnodave
- 라이선스 : GPL, LGPL License

지멘스(Siemens) PLC를 접속할 수 있도록 해주는 모듈로 
MPI, PPI 케이블을 통한 시리얼 통신 CPx43 프로세서, IBH/MHJ-Netlink, NetLink PRO등을 통한 TCP/IP 통신을 지원합니다. LIBNODAVE 모듈 또한 C# 닷넷 환경을 지원하고 있습니다.

지멘스의 S7 300, 400시리즈를 MPI 및 CP 343/443을 통해 지원하고 S7 200시리즈는 PPI 및 CP243을 통해 지원합니다. 적용 대상 PLC의 어댑터 케이블 유무나 통신 프로세서의 유무를 확인하시면 간편하게 동운 HMI에 접속해서 사용할 수 있습니다. 지멘스 제품외에도 S7과 호환되는 PLC라면 이 모듈을 통해서 접속할 수 있으며 야스카와의 독일 자회사인 VIPA의 Speed7 PLC를 대표적인 예로 들 수 있습니다.



■ OPC Core components
- https://opcfoundation.org/developer-tools/developer-kits-classic/core-components/
- 라이선스 : MIT License

OPC(OLE for Process Control) 관련 스펙 정의와 기술 공급을 담당하는 OPC Foundation에서 개발자용으로 제공하는 C# 관련 모듈을 통해서 OPC 서버 기능을 제공하는 다양한 장비와 접속할 수 있습니다. 전통적인 OPC DA 방식이며 OPC UA의 경우에는 OPC UA 서버 측에서 제공하는 API를 활용하여 접속할 수 있습니다. 

C# 기반의 FreeSCADA2(http://free-scada.org/)의 경우에도 OPC Core components를 사용하고 있습니다. 또다른 OPC DA 사용 예제는 http://www.codeproject.com/Articles/1135/OPC-and-NET-with-COM-Interoperability를 참조할 수 있습니다.




■ ABDF1, ABEthernetComm
- http://sourceforge.net/projects/abethernet
- http://sourceforge.net/projects/abdf1
- 라이선스 : GPL License

Allen Bradley PLC를 시리얼로 접속할 수 있는 Allen Bradley 
DF1 프로토콜을 지원하는 드라이버와 이더넷으로 PLC와 접속할 수 있는 드라이버입니다. Allen Bradley의 MicroLogix 시리즈, SLC500 시리즈, PLC 5등을 지원합니다.

공개된 소스는 VB.Net으로 C# 기반의 동운 HMI에서 사용하기 위해서는 C# 기반으로 전환 개발할 필요가 있으나 동일하게 닷넷 환경 기반에서 수행되므로 전환 개발에 큰 어려움은 없을 것으로 보입니다. VB코드를 라이브러리화 해서 C#에서 활용하도록 약간의 조정 작업하는 방법도 있습니다.

AB PLC를 접속하기 위한 다른 라이브러리로 TuxEIP Df1 for linux가 있지만 모두 C언어로 작성되어 C#으로의 전환 개발이 필요합니다.





■ PLC 및 장치 전용 라이브러리

위에서 언급된 다양한 표준 프로토콜외에도 프로토콜의 스펙이 공개되어 있거나 Reverse Engineering이 가능한 경우에는 각 프로토콜에 맞는 전용 드라이버를 제작할 수 있습니다. 또한 지멘스의 Simatic net이나 미쯔비씨의 MX Component처럼 PLC 전용 라이브러리를 제공하는 경우에는 해당 라이브러리를 사용하는 전용 드라이버를 제작하여 동운 HMI의 준비된 프레임워크를 적절하게 활용 할 수 있습니다.


RS-232C, RS-422, RS-485등을 기반으로 한 시리얼 통신을 하는 독립 장비들은 나름의 라이브러리를 지원한다면 해당 라이브러리를 활용하여 동운 HMI의 드라이버를 제작하고 라이브러리를 지원하지 않는 경우에는 C#의 SerialPort 콤포넌트를 활요하여 해당 장치의 스펙에 따라 전용 드라이버를 제작할 수 있습니다. 라이브러리도 없고 스펙도 존재하지 않는 경우에는 장치간 통신 내용을 Reverse engineering하여 제한된 범위의 스펙을 추적하여 전용 드라이버를 제작하는 방법이 있습니다.

(주)동운시스템 전화 041-358-3760

동운 HMI 소개 바로가기 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함