2014-11-17 21 views
1

변경 사항을 추적하기 위해 PLC 프로그램이 업데이트 될 때마다 정수 값을 증가시켜야합니다.CoDeSys가있는 WAGO PLC에서 프로그램 변경 추적

online_changebefore_download과 같은 시스템 이벤트가 있지만 해당 기능을 구현하는 방법을 알지 못합니다.

또한 업데이트 사이에 값을 저장해야합니다. 추적 변수는 RETAIN으로 작성해야하지만 확실하지는 않습니다.

답변

0

변수 선언 유형은 VAR RETAIN PERSISTENT이어야합니다. RETAIN으로 선언 된 변수는 프로그램 변경으로 인해 (의도적으로) 그 값을 잃게됩니다.

나는 SysLibProjectInfo.lib 당신이 SysGetProjectID 기능과 함께 무엇을 찾고있는 내장 Codesys 라이브러리를 생각합니다. SysGetProjectID를 RETAIN PERSISTENT으로 저장 한 다음 비교하면 변경 사항을 추적 할 수 있습니다 (또는이 고유 값은 수동으로 ID를 만들지 않고 처음부터 원했던 값일 수 있습니다).

참고 : 변수를 선언하는 방법에 따라 I/O 구성을 변경하면 VAR RETAIN PERSISTENT 변수에서도 예기치 않은 변경이 발생할 수 있습니다 (동적으로 할당 된 모든 주소가 이동되고 이전 위치를 가리킬 수 없음).

+0

나는 그것을 밖으로 경영했다. 답변 감사합니다. –

+0

@BatRamboZPM 다른 방법을 찾았다면 참조 용으로 자신의 답변을 게시 하시겠습니까. – user2097818

+0

귀하의 대답은 올바른 해결책을 제시합니다. 비슷한 구현을 사용했습니다. –

0

당신이 알고있는 것만 큼 당신은 PLC에서 어떤 버전이 실행되고 있고 변경 한 사항을 추적하고 싶습니까? 다음 두 가지 방법으로 할 수 있습니다 :

PLC 외부에서 변경할 때마다 상수이므로 SoftwareVersion : WORD : = 100;과 같이 선언 된 변수의 개정판을 굴립니다. 리비전 글로벌 목록에 보관하여 PLC에 다운로드하기 전에 메모를 추가하고 버전을 변경할 수 있습니다. 필드가있는 PLC 요약 영역을 사용하여 값을 입력 한 다음 소프트웨어 업로드없이 CoDeSys를 통해 읽을 수도 있습니다.

물론 위의 제안이 효과가 있습니다.