주메뉴 바로가기 | 쇼핑카테고리 바로가기 | 하위메뉴 바로가기 | 본문 바로가기

고객지원

  • 공지사항
  • 새소식
  • 자료실
  • 영업문의
  • A/S 문의
  • Q&A
  • 교육
  • 사업자등록증 출력
  • 자료실

Q&A

HOME > 고객지원 > Q&A
  • 서울사업본부
  • 창원사업본부
PLC, IO Server통신 Redundancy
작성자: 관리자 2002-03-07 14:13:10 | 4,683
일단 I/O server와 InTouch의 데이터 송수신 체크입니다.

I/O server에 Topic을 만들면 InTouch에는 해당 AccessName가 있을것입니다.
InTouch에서 IO integer Tag에 해당 AccessName를 부여한뒤
item name을 STATUS로 주시면
IO Server에 이상이 발생할 경우 Status값이 0이 됩니다.

PLC Backup과 관련해서는
IO Server에 해당 PLC에 따라 각각의 Topic을 만들어 두셨을 것입니다.
각각의 PLC에 HeartBeat Address를 만들어둡니다.
참고로 HeartBeat는 PLC에 특정 Address에 끊임없이 값이 변하게끔
(예를들어 시간의 초 값 같은)
설정합니다.

그런 후 InTouch의 특정 Tag에 HeartBeat Address를 부여합니다.
예를들어 IO integer Tag에 Tagname : Heart라고 가정하고

Datachange Script에

Tagname : Heart
Script : CounterCheck = 0;

Tagname : $Second
Script : CounterCheck = CountCheck +1;
if CounterCheck > 10 then <-여기서 10은 PLC와 통신이 10초간 멈추면 Topic을 바꾸게 됩니다.
IOSetAccessname("Accessname","nodename","Applicationname","Topicname");
endif;
IOSetAccessName Function에 대한 자세한 설명은 Script창의 Help를 참조하십시오.

이상입니다.

위의 Script에 좀 더 추가하자면
IOGetTopic Function 등을 이용하여 현재 Topic값을 얻어 이상이 발생하면 다른 Topic으로 대체합니다.

예를들어
if CounterCheck > 10 then
if IOGetTopic("AccessName") == "PLC1" then
IOSetAccessName("AccessName","Node","Application","PLC2");
else
IOSetAccessName("AccessName","Node","Application","PLC1");
end if;
end if;

이전글
다음글
목록
답변 삭제 수정