제어 데이터와의 컨트롤러 통신 상호작용

컨트롤러는 애플리케이션 코드와 별도로 통신 태스크를 실행합니다. 컨트롤러는 애플리케이션에 대해 비동기적으로 통신을 실행합니다. 따라서, 새로 전송된 데이터에 대해 애플리케이션을 실행하기 전에 컨트롤러로 전송된 통신이 완전한지 확인하십시오. 이것은 컨트롤러로 입력되는 데이터와 컨트롤러에서 출력되는 데이터 모두에 적용됩니다.
예를 들어, HMI 장치가 대형 블록의 레시피 데이터를 컨트롤러로 기록하는 경우, 데이터가 기록되기 전에 해당 데이터에 대해 애플리케이션 코드가 실행을 시작할 수 있습니다. 이 작업으로 인해 애플리케이션 공간에서 현재 레시피의 절반과 마지막 레시피의 절반이 발생합니다.
다음 방법을 사용해 비동기 통신의 영향을 제어할 수 있습니다. 접근 차단은 애플리케이션 실행 중 통신으로 인해 소스 데이터 값이 변경되는 것을 방지합니다. 접근 허용은 애플리케이션 실행 중에 통신을 통해 소스 데이터 값이 변경될 수 있음을 의미합니다.
컨트롤러 동작
애플리케이션 구조
태그 액세스
HMI
MSG
I/O 업데이트
Produce/Consume
기타 사용자 태스크
모션 플래너
UID/UIE
허용
허용
허용
허용
차단
허용
CPS
차단
차단
차단
차단
허용
허용
주기 태스크
허용
허용
허용
허용
허용
허용
이 옵션은 메인 코어가 태스크를 전환할 수 있는 시점을 제어하는 기능에 따릅니다. 따라서, 제어 태스크가 이것을 사용하는 경우 통신 작업이 데이터를 변경할 수 없습니다. 컨트롤러가 독립 CPU 코어에서 통신을 처리하기 때문에, 이 방법은 모든 케이스에서 더 이상 효과적이지 않습니다.
컨트롤러는 32비트 데이터 무결성을 가지기 때문에, 이는 32비트를 초과하는 데이터 구조에만 적용됩니다. 워드 수준의 통합이 1차적인 과제이므로, 32비트 데이터 통합은 데이터 사용에 영향을 주지 않습니다.
우수 프로그래밍을 위한 지침에 따르면 데이터의 시작과 끝에 2개의 고유한 워드를 사용하도록 권장하고 있습니다. 컨트롤러는 워드를 검증해서 전체 구조가 데이터 무결성을 가지고 있는 것을 확인합니다. 컨트롤러 애플리케이션 코드 또는 고수준 시스템 판독 컨트롤러 데이터가 실행하기 전에 핸드쉐이크 데이터를 변경하고 애플리케이션 코드가 모든 트랜잭션마다 이를 검증하도록 권장합니다.
다음 표는 데이터 무결성 검사를 위해 구조에 추가된 두 가지 데이터 요소인 시작 데이터와 종료 데이터를 보여줍니다. 컨트롤러가 My_Recipe1에 대해 실행하기 전에 컨트롤러가 Start Data 값과 End Data 값 일치를 검증하도록 권장합니다.
Start Data와 End Data 값이 일치하지 않는 경우, 구조를 채우는 통신이 진행되고 있을 가능성이 있습니다. 컨트롤러에서 데이터를 수신하는 고수준 시스템에 동일한 사항이 적용됩니다.
데이터 요소
구조
My_Recipe1
My_Recipe2
My_Recipe3
Start Data
101
102
103
Sugar
3
4
8
Flour
4
3
9
Chocolate
2
2
4
Oil
6
7
2
End Data
101
102
103
팁:
이 테스트는 통신 코어에 의해 기록되는 실제 데이터 요소가 아니라 버퍼링된 데이터 사본에서 실행하도록 권장합니다. 버퍼링된 데이터를 사용하는 경우 데이터 유효성 검사를 통과한 후에 통신 코어가 데이터를 변경하는 위험을 방지할 수 있습니다.
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal