티스토리 뷰




동운 HMI에서는 Libnodave 모듈을 활용해서 지멘스의 S7 PLC를 TCP 방식(Siemens ISO on TCP - RFC 1006)으로 접속할 수 있는 드라이버 뿐만아니라 MPI 및 PPI 시리얼 인터페이스와 SIMATIC PC Adapter USB 인터페이스를 통한 드라이버도 제공하고 있습니다. 위의 그림의 시현 환경은 SIMATIC S7-400 CPU를 사용하고 있지만 S7-300 및 그 하위 버전의 CPU도 사용할 수 있습니다.





위의 그림은 지멘스 S7 PLC에 대한 "SIMATIC PC Adapter USB 인터페이스" 설정 예제로 동운 HMI에서는 "siemenss7"이라는 이름의 드라이버를 제공하고 있습니다. <driver> 항목에 "siemenss7" 드라이버 이름을 입력하고 <name>에 해당 PLC를 지칭하는 아이디를 입력합니다. <name>에 입력한 PLC 아이디는 추후 정의한 태그 정의에서 어떤 PLC에 속한 태그인지를 지칭할 때 사용합니다. 동운 HMI에서는 여러 PLC를 등록할 수 있으므로 PLC를 추가 등록하려면 <da_module>내부에 <plc> 그룹을 추가로 기술하면 됩니다.


"SIMATIC PC Adapter USB 인터페이스"를 통해서 PLC에 접속하려면 Step7이 설치되어야 하는데 "s7onlinx.dll"파일을 찾으므로 정상적인 구동 환경을 확인을 하려면 시스템 폴더에 "s7onlinx.dll" 파일이 있는지 확인하면 됩니다. PLC의 Access Point를 <addr> 항목에 입력하고 MPI번호를 <port>에 입력합니다.




위의 그림은 Step7 Set PG/PC Interface에서 인터페이스로 "SIMATIC PC Adapter USB"에 대하여 "PC Adapter(MPI)를 선택한 것입니다. Access Point가 "S7ONLINE"임을 확인할 수 있습니다.


MPI 및 PPI 시리얼 인터페이스의 경우에는 PLC 정의에서 <driver> 항목으로 "siemensmpi"와 "siemensppi"를 각각 사용하면 되고 <addr> 항목에는 "COM1"과 같은 시리얼 포트 이름을 입력하고 <port>에는 38400과 같은 통신 속도를 지정합니다. "siemenss7" 드라이버 지정시에는 <port>에 MPI 번호를 지정했지만  "siemensmpi"와 "siemensppi"에서는 <devid> 항목에 MPI 번호를 지정합니다. PLC 접속을 위한 준비가 끝나면 태그 정의를 진행하면 됩니다. 태그 정의는 타 기종의 PLC의 태그 정의와 유사하게 진행합니다.




태그 정의는 <tags>...</tags>그룹으로 묶어서 위의 그림과 같이 정의할 수 있습니다. <name>항목에 입력한 태그 아이디는 각종 컨트롤과 태그를 연결하는 매개가 되므로 나름의 원칙을 가지고 태그를 인식하기에 어렵지 않도록 정의합니다. 태그가 어떤 PLC에 속하는지는 <plc>항목을 통해서 지정합니다. <plc>항목에 기술한 "s7sim"은 앞서 <da_module><plc>로 정의했던 PLC 항목입니다. <addr>로 PLC주소를 입력하는데 지멘스 태그들은 "DB1.DBD4"와 같이 메모리 영역과 데이터 타입, 숫자 주소가 복합적으로 감안된 태그의 주소를 기술합니다. 숫자 주소는 0부터 시작합니다. 메모리 영역과 예제 주소는 다음과 같습니다.


  • Data blocks : DB3.DBD4
  • Flags/Markers : MW4
  • Input memory image : IB2
  • Output memory image : QD8
  • Timers : T2             
  • Counters : C2           
  • Direct I/O : PW4         



데이터 블럭 영역은 "DBbb.DBttaa"식으로 기술하며 bb는 데이터블럭의 번호를 의미하고 ttaa는 PLC의 데이터 타입과 주소를 의미합니다. ttaa의 기술 방법은 아래와 같습니다.


  • XNN.b : 비트, NN은 위치(0부터 시작), b는 비트 위치 - DB10.DBX10.1
  • BNN : 바이트, NN은 위치 - DB10.DBB0
  • WNN : 워드, NN은 위치 - DB5.DBW1
  • DNN : 더블워드, NN은 위치 - DB5.DBD3
  • SNN.l : 스트링, NN은 위치 l은 길이 - DB5.DBS7.8



데이터 블럭 영역을 제외한 나머지 영역은 "DB"로 시작하는 데이터블럭 번호를 기술하지 않습니다. 타이머와 카운터 영역은 워드(W) 타입으로 고정되어 있으므로 별도의 데이터 타입을 지정하지 않고 태그 위치만 지정하면 되지만 나머지 메모리 영역은 데이터 블럭 처럼 ttaa부분을 기술하면 됩니다. PLC 데이터 타입과 무관하게 <type>은 실제 PLC 데이터 주소에 해당하는 영역을 어떤 자료 형태로 다룰 것인지를 지정하는 것으로 동운 HMI에서 다음과 같은 데이터 타입을 지원하고 있습니다. 되도록 양측의 데이터타입을 일치 시키는 것이 혼란을 예방하는 길입니다.


  • "bool" : Boolean, 디지털 신호를 저장할 때 사용
  • "Int16" : 부호있는 2 byte 정수
  • "Int32" : 부호있는 4 byte 정수
  • "UInt16" : 부호없는 2 byte 정수
  • "UInt32" : 부호는 4 byte 정수
  • "float" : 실수(4 byte)
  • "String" : 문자열



태그값을 데이터베이스에 저장하고 싶다면 저장 주기를 <archive> 항목에 초 단위로 기술하면 됩니다. <archive> 항목을 기술하지 않으면 데이터베이스에 태그 값을 저장하지 않습니다. 태그 값을 읽기 전용으로("r") 사용할지 아니면 쓰기도 가능하게 할 것인지("rw")는 <io> 항목에 기술합니다. 생략하면 읽기 전용으로 간주합니다. 위의 예제에서 "A004"태그는 PLC 장치 값과 HMI 처리 값 간의 자동 스케일이 적용된 상태인데 장치 값과 처리 값 사이의 자동 변환을 처리하려면 <rawmin><rawmax>항목을 통해서 장치값으로 범위를 지정하고 <eumin><eumax>항목으로 HMI 처리 값의 범위를 지정하면 됩니다. 네가지 범위를 기술하지 않거나 정상적인 범위 지정이 아니면 자동 스케일을 적용하지 않습니다. 예제의 "A003"태그에는 자동 경보가 설정되어 있습니다. 아날로그 값이 일정 범위를 넘어서면 알람을 발생시키고 조작자로 하여금경보를 통해서 적절한 조치를 취하거나 인지(Ack)처리 할 수 있도록 하는 것으로 동운 HMI에서는 다음과같은 알람을 제공하고 있습니다.


  • "setAlm" : 디지털 태그값("bool" 타입)이 0이 아닐때 경보 발생
  • "resetAlm" : 디지털 태그값("bool" 타입)이 0일때 경보 발생
  • "euminAlm" : 아날로그 태그값이 "eumin" 설정 보다 작을 때 경보 발생
  • "eumaxAlm" : 아날로그 태그값이 "eumax" 설정 보다 클 때 경보 발생
  • "loAlm" : 아날로그 태그값이 지정한 값 보다 작을 때 경보 발생
  • "loloAlm" : 아날로그 태그값이 지정한 값 보다 작을 때 경보 발생
  • "hiAlm" : 아날로그 태그값이 지정한 값 보다 클 때 경보 발생
  • "hihiAlm" : 아날로그 태그값이 지정한 값 보다 클 때 경보 발생



경보 설정은 예제처럼 <setAlm>처럼 태그로 묶어서 내부에 경보 수준(알람 레벨) 또는 지정값과 경보 수준을 입력하면 됩니다. setAlm, resetAlm, euminAlm, eumaxAlm 경보는 경보 수준만 입력하면 되지만 나머지 경보는 "1000|alert"와 같이 비교 값과 경보 수준을 "|"문자로 구분해서 입력합니다. 동운 HMI에서 지원하는 경보 수준은 "none", "caution", "alert", "critical" 로 구분해서 지정할 수 있습니다.

 



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함