2016-06-23 12 views
0

NModbus4가있는 C# 응용 프로그램으로 Click PLC를 프로그래밍하고 있습니다. (RS232)NModbus4가 PLC에서 TXT를 읽습니다.

이제 TXT 데이터를 읽고 쓰려고합니다.

은 코드 및 결과 : enter image description here

내가 하나 모드 버스 주소가 사용되는 각 문자에 대한 것을 알 수있는 클릭 PLC 소프트웨어를 확인 .

enter image description here

는 어떻게 PLC에 저장된 텍스트를받을 수 있나요? 누군가 아이디어를 얻었습니까?
PLC에 저장된 텍스트는 "Dit is tekst"입니다.

+0

436865 번지에서 PLC에 저장된 텍스트는 무엇입니까? – Ronaldo

답변

0

Modbus 레지스터는 2 개의 문자를 저장할 수 있도록 16 비트 폭입니다. 이것이 각각 두 개의 문자가 같은 주소를 공유하는 이유입니다.

즉, 사용 된 바이트 순서를 추론해야합니다. 즉 두 개의 문자가 레지스터에 어떻게 채워지나요? 어느 것이 가장 중요한 바이트로 가는가?

예제 텍스트를 사용하면 12 개의 문자가 있으므로 6 개의 레지스터를 읽는 것으로 충분합니다 (436865-436870). 디버그 그림에서 주소 436865는 1694로 변환 될 때 값 26948, 0x6944를 저장합니다. ASCII 표를 찾고 0x69 및 0x44 코드를 찾으십시오. 이들은 문자 'i'와 'D'의 코드입니다. PLC의 텍스트는 "Di"로 시작합니다. 우리는 레지스터에 저장된 char의 각 쌍에 대해 두 번째 char이 최상위 바이트에 위치한다고 추론 할 수 있습니다.

그러면 각 레지스터의 바이트를 스왑하고 ASCII 테이블을 사용하여 char로 변환하여 PLC에서 텍스트를 가져올 수 있습니다.

+0

굉장! 감사! 나는 그것을 이해할 수 없었다! –