본 자료는
1. 문제 설명
2. 해결 방법
순서로 진행합니다.
다음과 같이 IEC-Series와 외부 장비(장치)가 프레임 구조의 통신을 할 경우 프레임 구별을 위한 STX, ETX를 사용하게 됩니다. 송/수신 STX, ETX 값이 각기 다른 경우 SmartSerialPo
rt에서 송/수신 각각의 STX, ETX를 설정할 수 있는 기능을 지원하고 있습니다.
IEC-Series → 외부 장비
STX 0x15 |
DATA[0] 0x41 |
DATA[1] 0x42 |
Error Check |
ETX 0x03 |
외부 장비 → IEC-Series(※ 송/수신 STX 다른 경우)
STX 0x1A |
DATA[0] 0x41 |
DATA[1] 0x42 |
Error Check |
ETX 0x03 |
위와 같이 STX 코드가 서로 일치하지 않는 경우(CASE-1) SmartSerialPort 통신이 되지 않는 문제점이 발생합니다. 이는 SetWriteOnlySTX() 메소드로 일치하지 않는 STX 코드와 별개로 송신 시에만 사용되는 STX 코드를 별도로 지정하여 해결 가능합니다.
IEC-Series → 외부 장비
STX 0x02 |
DATA[0] 0x41 |
DATA[0] 0x42 |
Error Check |
ETX 0x04 |
외부 장비 → IEC-Series (※ 송/수신 STX 다른 경우)
STX 0x02 |
DATA[0] 0x41 |
DATA[0] 0x42 |
Error Check |
ETX 0x05 |
위와 같이 ETX 코드가 서로 일치하지 않는 경우(CASE–2) SmartSerialPort 통신이 되지 않는 문제가 발생하나, SetWriteOnlyETX() 메소드로 일치하지 않는 ETX 코드와 별개로 송신 시에만 사용되는 ETX 코드를 별도로 지정하여 해결 가능합니다.
2. 해결 방법
별도의 수정사항 없이 IEC-Series 제품과 외부 장비 간의 송신 시에만 사용되는 STX 또는 ETX 코드를 SetWriteOnlySTX() 또는 SetWriteOnlyETX() 메소드를 통해 별도로 지정합니다. 따라서 STX 또는 ETX 코드 대신 별도로 지정한 코드가 데이터에 포함되어 송신됩니다.
CASE-1 | IEC-Series 제품과 외부 장비의 STX가 다른 경우 |
---|---|
IEC-Series 제품에서 외부 장비로 데이터를 송신 시에만 사용되는 STX 코드를 SetWriteOnlySTX() 메소드를 통해 0x1A로 별도로 지정합니다. |
CASE-2 | IEC-Series 제품과 외부 장비의 ETX가 다른 경우 |
---|---|
IEC-Series 제품에서 외부 장비로 데이터를 송신 시에만 사용되는 ETX 코드를 SetWriteOnlyETX() 메소드를 통해 0x05로 별도로 지정합니다. |