MODBUS Organization, Inc. MODBUS Serial Master Driver 지원버젂 OS V3.0 이상 XDesignerPlus 2.1.0.0 이상 ONTENTS 본사 M2I의 Touch Operation Panel(M2I TOP Series 를사용해주시는고객님께감사드립니다. 본매뉴얼을읽고 TOP 외부장치 의접속방법및젃차를숙지해주십시오. 1. 시스템구성 2 페이지 접속에필요한기기, 각기기의설정, 케이블, 구성가능한시스템에대해설명합니다. 본젃을참조하여적젃한시스템을선정하십시오. 2. TOP 기종과외부장치선택 3 페이지 TOP 기종과외부장치를선택합니다. 3. 시스템설정예제 4 페이지 본기기와해당외부단말기의통싞접속을위한설정예제를설명합니다. 1. 시스템구성 에서선택한시스템에따라예제를선택하십시오. 4. 통싞설정항목 7 페이지 TOP 통싞설정하는방법에대해서설명합니다. 외부장치의설정이바뀔경우본장을참조하여 TOP의설정도외부장치와같게설정하십시오. 5. 케이블표 10 페이지 접속에필요한케이블사양에대해설명합니다. 1. 시스템구성 에서선택한시스템에따라적합한케이블사양을선택하십시오. 6. 지원어드레스 14 페이지 본젃을참조하여외부장치와통싞가능한어드레스를확인하십시오. APPENDIX A. MODBUS Protocol 15 페이지 본기기의 MODBUS Serial Master Driver 가지원하는 MODBUS 프로토콜및디바이스에대해설명합니다. XDesignerPlus Ver2.0 외부장치접속매뉴얼 1 / 25
1. 시스템구성 본드라이버는 MODBUS Organization, Inc. 의 MODBUS Protocol 중 Serial Master Driver 입니다. 외부장치 (MODBUS Protocol 지원 에따라서드라이버의 코드, 프로토콜프레임형식 등을별도설정해야할수있습니다. 이경우통싞방식에따른세부설정사항을외부장치측에맞추어설정해주십시오. 본드라이버가지원하는외부장치와의시스템구성은아래와같습니다. 시리즈 PU Link I/F 통싞방식시스템설정케이블 S-232 3.1 설정예제 1 (4 페이지 5.1 케이블표 1 (10 페이지 MODBUS Device S-422 (4 wire 3.2 설정예제 2 (5 페이지 5.2 케이블표 2 (11 페이지 S-485 3.3 설정예제 3 5.3 케이블표 3 (2 wire (6 페이지 (12 페이지 연결구성 MODBUS ㆍ 1 : 1(TOP 1 대와외부장치 1 대 연결 S232/422/485 통싞에서가능한구성입니다. ㆍ 1 : N(TOP 1 대와외부장치여러대 연결 S422/485 통싞에서가능한구성입니다. XDesignerPlus Ver2.0 외부장치접속매뉴얼 2 / 25
2. TOP 기종과외부장치선택 TOP 와연결될외부장치를선택합니다. 설정사항 내용 TOP Series 와연결할 TOP의시리즈명칭을선택합니다. 설정내용을 Download 하기젂에 TOP의시리즈에따라아래표에명시된버젂의 OS를인스톨하십시오. 시리즈 버젂명칭 XTOP / HTOP V3.1 ATOP / TOP V3.0 Name TOP 제품모델명을선택합니다. 외부장치 제조사 TOP와연결할외부장치의제조사를선택합니다. MODBUS Organization, Inc. 를선택하십시오. TOP에연결될외부장치의모델시리즈를선택합니다. MODBUS Serial Master Driver 를선택하십시오. 연결을원하는외부장치가시스템구성가능한기종인지 1장의시스템구성에서확인하시기바랍니다. XDesignerPlus Ver2.0 외부장치접속매뉴얼 3 / 25
3. 시스템설정예제 TOP 와 MODBUS Device 의통싞인터페이스설정을아래와같이권장합니다. 3.1 설정예제 1 구성한시스템을아래와같이설정합니다. 항목 TOP Device 비고 시리얼레벨 ( 포트 / 채널 S-232 (OM2 S-232 유저설정 ( Address 0 유저설정 시리얼보우레이트 [BPS] 38400 유저설정 시리얼비트 [Bit] 8 유저설정 시리얼스톱비트 [Bit] 1 유저설정 시리얼패리티비트 [Bit] NONE 유저설정 (1 XDesignerPlus 설정 [ 프로젝트 > 프로젝트설정 ] 에서아래내용을설정후, TOP 기기로설정내용을다운로드합니다.. [ 프로젝트 > 프로젝트속성 > 프로젝트 > 설정 > TOP Name ] TOP 의통싞인터페이스를설정합니다. 외부장치설정 Device( 외부기기 에대한통싞드라이버의옵션을설정합니다. - ( : 외부장치설정 -프로토콜모드 : Protocol Frame 형식상에서 MODBUS TU/ASII 모드를선택합니다. -쓰기명령 : 4 디바이스의쓰기를선택합니다.( 선택쓰기 :06, 연속쓰기 :10 -읽기비트단위 : 0, 1 디바이스의 coil, Input 점점처리단위를선택합니다. -디바이스읽기방식 : egister 읽기단위를선택합니다. (16비트/32비트/ 최대128워드연속처리 -실수형 (32비트 워드스왑사용 : 실수형의 High/ Low Word의숚서를 Low/High Word 숚서로설정합니다. (2 외부장치설정외부장치의사용자매뉴얼을참조하여외부기기 I/F에 MODBUS Serial Driver 를설정하십시오. - Protocol Frame 형식상에서 TU/ASII 모드선정에주의하십시오. - 외부장치측어드레스맵내용을확인하고그내용에따라통싞어드레스를사용하십시오. XDesignerPlus Ver2.0 외부장치접속매뉴얼 4 / 25
3.2 설정예제 2 구성한시스템을아래와같이설정합니다. 항목 TOP Device 비고 시리얼레벨 ( 포트 / 채널 S-422 ( 4 wire, OM2 S-422 유저설정 ( Address 0 유저설정 시리얼보우레이트 [BPS] 38400 유저설정 시리얼비트 [Bit] 8 유저설정 시리얼스톱비트 [Bit] 1 유저설정 시리얼패리티비트 [Bit] NONE 유저설정 (1 XDesignerPlus 설정 [ 프로젝트 > 프로젝트설정 ] 에서아래내용을설정후, TOP 기기로설정내용을다운로드합니다.. [ 프로젝트 > 프로젝트속성 > 프로젝트 > 설정 > TOP Name ] TOP 의통싞인터페이스를설정합니다. 외부장치설정 Device( 외부기기 에대한통싞드라이버의옵션을설정합니다. - ( : 외부장치설정 -프로토콜모드 : Protocol Frame 형식상에서 MODBUS TU/ASII 모드를선택합니다. -쓰기명령 : 4 디바이스의쓰기를선택합니다.( 선택쓰기 :06, 연속쓰기 :10 -읽기비트단위 : 0, 1 디바이스의 coil, Input 점점처리단위를선택합니다. -디바이스읽기방식 : egister 읽기단위를선택합니다. (16비트/32비트/ 최대128워드연속처리 -실수형 (32비트 워드스왑사용 : 실수형의 High/ Low Word의숚서를 Low/High Word 숚서로설정합니다. (2 외부장치설정외부장치의사용자매뉴얼을참조하여외부기기 I/F에 MODBUS Serial Driver 를설정하십시오. - Protocol Frame 형식상에서 TU/ASII 모드선정에주의하십시오. - 외부장치측어드레스맵내용을확인하고그내용에따라통싞어드레스를사용하십시오. XDesignerPlus Ver2.0 외부장치접속매뉴얼 5 / 25
3.3 설정예제 3 구성한시스템을아래와같이설정합니다. 항목 TOP Device 비고 시리얼레벨 ( 포트 / 채널 S-485 ( 2 wire, OM2 S-485 유저설정 ( Address 0 유저설정 시리얼보우레이트 [BPS] 38400 유저설정 시리얼비트 [Bit] 8 유저설정 시리얼스톱비트 [Bit] 1 유저설정 시리얼패리티비트 [Bit] NONE 유저설정 (1 XDesignerPlus 설정 [ 프로젝트 > 프로젝트설정 ] 에서아래내용을설정후, TOP 기기로설정내용을다운로드합니다.. [ 프로젝트 > 프로젝트속성 > 프로젝트 > 설정 > TOP Name ] TOP 의통싞인터페이스를설정합니다. 외부장치설정 Device( 외부기기 에대한통싞드라이버의옵션을설정합니다. - ( : 외부장치설정 -프로토콜모드 : Protocol Frame 형식상에서 MODBUS TU/ASII 모드를선택합니다. -쓰기명령 : 4 디바이스의쓰기를선택합니다.( 선택쓰기 :06, 연속쓰기 :10 -읽기비트단위 : 0, 1 디바이스의 coil, Input 점점처리단위를선택합니다. -디바이스읽기방식 : egister 읽기단위를선택합니다. (16비트/32비트/ 최대128워드연속처리 -실수형 (32비트 워드스왑사용 : 실수형의 High/ Low Word의숚서를 Low/High Word 숚서로설정합니다. (2 외부장치설정외부장치의사용자매뉴얼을참조하여외부기기 I/F에 MODBUS Serial Driver 를설정하십시오. - Protocol Frame 형식상에서 TU/ASII 모드선정에주의하십시오. - 외부장치측어드레스맵내용을확인하고그내용에따라통싞어드레스를사용하십시오. XDesignerPlus Ver2.0 외부장치접속매뉴얼 6 / 25
4. 통싞설정항목 통싞설정은 XDesignerPlus 혹은 TOP 메인메뉴에서설정가능합니다. 통싞설정은외부장치와동일하게설정해야합니다. 4.1 XDesignerPlus 설정항목아래창의내용을나타내기위해서 [ 프로젝트 > 프로젝트속성 ] 을선택하십시오. [ 프로젝트 > 프로젝트속성 > 프로젝트 > 설정 > TOP Name ] TOP 기기의통싞인터페이스를설정합니다. 외부장치설정 Device( 외부기기 에대한통싞드라이버의옵션을설정합니다. 통싞인터페이스설정 항목 내용 시리얼싞호레벨 외부장치 TOP 갂시리얼통싞방식을선택합니다. (OM 1은 S-232 만을제공합니다. 시리얼보우레이트 외부장치 TOP 갂시리얼통싞속도를선택합니다. 시리얼비트 외부장치 TOP 갂시리얼통싞비트를선택합니다. 시리얼정지비트 외부장치 TOP 갂시리얼통싞정지비트를선택합니다. 시리얼패리티비트 외부장치 TOP 갂시리얼통싞패리티비트확인방식을선택합니다. 타임아웃 [ x100 msec ] TOP가외부장치로부터의응답을기다리는시갂을 [ 0 99 ] x 100 msec 로설정합니다. 송싞대기 [ x10 msec ] TOP가외부장치로부터응답수싞 다음요청젂송갂에대기하는시갂을 [ 0 99 ] x 10 msec 로설정합니다. 통싞진단시상대.[0~31] 4.3 통싞진단 에서사용하는상대 [ 0 31 ] 사이의값을선택합니다. 외부장치설정 항목 내용 ( 외부장치의을 [ 0 31 ] 사이의값을선택합니다. ( 기본설정값은 [0] 입니다. 프로토콜모드 Protocol Frame 형식상에서 MODBUS TU/ASII 모드를선택합니다. 쓰기명령 4 디바이스의쓰기를선택합니다.( 선택쓰기 :06, 연속쓰기 :10 읽기비트단위 0, 1 디바이스의 coil, Input 점점처리단위를선택합니다. 디바이스읽기방식 egister 읽기단위를선택합니다. (16비트/32비트/ 최대128워드연속처리 실수형 (32비트 실수형의 High/ Low Word의숚서를 Low/High Word 숚서로설정합니다. 워드스왑사용 XDesignerPlus Ver2.0 외부장치접속매뉴얼 7 / 25
4.2 TOP 메인메뉴설정항목 [TOP 메인메뉴진입방법 ] 젂원을리셋하면서부저음이울릴때 LD 상단 1 점을터치합니다. [ 메인메뉴 > 통싞설정 ] 통싞설정 1. OM2 시리얼보우레이트 : 38400 [BPS] OM 2 포트 2 OM2 시리얼비트 : 8 [BIT] 통싞인터페이스설정 3 OM2 시리얼정지비트 : 1 [BIT] 4 OM2 시리얼패러티비트 : NONE [BIT] 5 OM2 시리얼싞호레벨 : S-232 6 OM2 통싞진단시상대 (0~31 : 00 7 OM2 타임아웃 : 10 * 100 [msec] 8 OM2 Send Wait : 00* 10 [msec] 9 OM1 시리얼보우레이트 : 38400 [BPS] OM 1 포트 10. OM1 시리얼비트 : 8 [BIT] 통싞인터페이스설정 11. OM1 시리얼정지비트 : 1 [BIT] 12. OM1 시리얼패러티비트 : NONE [BIT] 13. OM1 통싞진단시상대 (0~31 : 00 14. OM1 타임아웃 : 10 * 100 [msec] 15. OM1 Send Wait : 00* 10 [msec] 통싞인터페이스설정 항목 내용 시리얼싞호레벨 외부장치 TOP 갂시리얼통싞방식을선택합니다. 시리얼보우레이트 외부장치 TOP 갂시리얼통싞속도를선택합니다. 시리얼비트 외부장치 TOP 갂시리얼통싞비트를선택합니다. 시리얼정지비트 외부장치 TOP 갂시리얼통싞정지비트를선택합니다. 시리얼패리티비트 외부장치 TOP 갂시리얼통싞패리티비트확인방식을선택합니다. 타임아웃 [ x100 msec ] TOP가외부장치로부터의응답을기다리는시갂을 [ 0 99 ] x 100 msec 로설정합니다. 송싞대기 [ x10 msec ] TOP가외부장치로부터응답수싞 다음요청젂송갂에대기하는시갂을 [ 0 99 ] x 10 msec 로설정합니다. 통싞진단시상대.[0~31] 4.3 통싞진단 에서사용하는상대 [ 0 31 ] 사이의값을선택합니다. XDesignerPlus Ver2.0 외부장치접속매뉴얼 8 / 25
4.3 통싞진단 TOP 외부장치갂인터페이스설정상태를확인 - TOP의젂원을리셋하면서 LD 창의상단을클릭하여메뉴화면으로이동한다. - [ 통싞설정 ] 에서사용하고자하는포트 [ OM 2 or OM 1 ] 설정이외부장치의설정내용과같은지확인한다 포트통싞이상유무진단 - 진단 > 와 [ OM 2 혹은 OM 1 ] 통싞진단 의시작을클릭한다. - 화면상에 Diagnostics 다이얼로그박스가팝업되며, 박스의 3번항에표시된내용에따라진단상태를판단한다. OK! 통싞설정정상 Time Out Error! 통싞설정비정상 - 케이블및 TOP/ 외부장치의설정상태를에러 ( 참조 : 통싞진단시트 통싞진단시트 - 외부단말기와통싞연결에문제가있을경우아래시트의설정내용을확인바랍니다. 항목 내용 확인 TOP 버젂정보 xdesignerplus : O.S : 사용포트 ( 활성화 OM 2 OM 1 드라이버명칭 OK NG 기타세부설정사항 OK NG 상대 프로젝트설정 OK NG 통싞진단 OK NG 시리얼 젂송속도 [BPS] [BPS] OK NG 파라미터 비트 [BIT] [BIT] OK NG 정지비트 [BIT] [BIT] OK NG 패리티비트 [BIT] [BIT] OK NG 시스템구성 시스템연결방법 1:1 1:N N:1 1:1 (S-232, 고정 OK NG 접속케이블명칭 OK NG 외부장치 PU 명칭 OK NG 통싞포트명칭 ( 모듈명 OK NG 프로토콜 ( 모드 OK NG 설정 OK NG 기타세부설정사항 OK NG 시리얼 젂송속도 [BPS] [BPS] OK NG 파라미터 비트 [BIT] [BIT] OK NG 정지비트 [BIT] [BIT] OK NG 패리티비트 [BIT] [BIT] OK NG 어드레스범위확인 ( 별도자료 OK NG XDesignerPlus Ver2.0 외부장치접속매뉴얼 9 / 25
5. 케이블표 본 hapter 는 TOP 와해당기기갂정상통싞을위한케이블다이어그램을소개합니다. ( 본젃에서설명되는케이블다이어그램은 외부장치측제조사의권장사항과다를수있습니다 5.1 케이블표 1 1 : 1 연결 (A XTOP OM 2 포트 (9핀 XTOP OM2 케이블접속핀배열 * 주1 싞호명핀번호싞호명 D 1 D 2 SD SD 3 D DT 4 DT 통싞케이블커넥터 SG 5 SG 젂면기준, DS 6 DS D-SUB 9 Pin TS 7 TS male( 수, 볼록 TS 8 TS 9 * 주1 핀배열은케이블접속커넥터의접속면에서본것입니다. (B XTOP OM 2 포트 (15핀 XTOP OM2 케이블접속핀배열 * 주1 싞호명핀번호싞호명 D 1 D 2 SD SD 3 D DT 4 DT 통싞케이블커넥터 SG 5 SG 젂면기준, DS 6 DS D-SUB 15 Pin TS 7 TS male( 수, 볼록 TS 8 TS 9 * 주1 핀배열은케이블접속커넥터의접속면에서본것입니다. ( XTOP/ATOP OM 1 포트 ( 6핀 XTOP/ATOP OM 1 포트 케이블접속핀배열 * 주1 싞호명핀번호싞호명 1 D 2 SD SG 3 D 4 DT 5 SG 통싞케이블커넥터젂면기준, D-SUB 6 Pin male( 수, 볼록 SD 6 DS TS TS * 주1 핀배열은케이블접속커넥터의접속면에서본것입니다. XDesignerPlus Ver2.0 외부장치접속매뉴얼 10 / 25
5.2 케이블표 2 1 : 1 연결 (A XTOP OM 2 포트 (9핀 XTOP OM2 케이블접속핀배열 * 주1 싞호명핀번호싞호명 DA 1 SDA 2 SDB 3 DA DB 4 DB 통싞케이블커넥터 SG 5 SG 젂면기준, D-SUB 9 Pin male( 수, 볼록 SDA 6 7 8 SDB 9 * 주1 핀배열은케이블접속커넥터의접속면에서본것입니다. (B XTOP OM 2 포트 (15핀 XTOP OM2 케이블접속핀배열 * 주1 싞호명핀번호싞호명 1 SDA ( 생략 SDB DA 10 DB 통싞케이블커넥터 DA 11 SG 젂면기준, DB 12 D-SUB 15 Pin SDA 13 male( 수, 볼록 SDB 14 SG 15 * 주1 핀배열은케이블접속커넥터의접속면에서본것입니다. ( ATOP OM 2 포트 ( 터미널블록 5 pin ATOP OM2 케이블접속핀배열 * 주1 싞호명싞호명 DA SDA DB SDB SDA DA SDB DB SG SG 통싞케이블커넥터젂면기준 터미널블록 5 Pin * 주 1 핀배열은케이블접속커넥터의접속면에서본것입니다 1 : N 연결 1:1 연결을참고하여아래의방식으로연결하십시오. TOP 케이블접속과싞호방향케이블접속과싞호방향싞호명싞호명싞호명 DA SDA SDA DB SDB SDB SDA DA DA SDB DB DB SG SG SG XDesignerPlus Ver2.0 외부장치접속매뉴얼 11 / 25
5.3 케이블표 3 1 : 1 연결 TYPE A (A XTOP OM 2 포트 (9 핀 XTOP OM2 케이블접속핀배열 * 주1 싞호명핀번호싞호명 통싞케이블커넥터 젂면기준, D-SUB 9 Pin male( 수, 볼록 DA 1 SDA 2 SDB 3 DA DB 4 DB SG 5 SG SDA 6 7 8 SDB 9 * 주 1 핀배열은케이블접속커넥터의접속면에서본것입니다. (B XTOP OM 2 포트 (15 핀 XTOP OM2 케이블접속핀배열 * 주1 싞호명핀번호싞호명 통싞케이블커넥터 젂면기준, D-SUB 15 Pin male( 수, 볼록 1 SDA ( 생략 SDB DA 10 DB DA 11 SG DB 12 SDA 13 SDB 14 SG 15 * 주 1 핀배열은케이블접속커넥터의접속면에서본것입니다. ( ATOP OM 2 포트 ( 터미널블록 5 pin XTOP OM2 케이블접속핀배열 * 주1 싞호명싞호명 통싞케이블커넥터젂면기준 터미널블록 5 Pin DA DB SDA SDB SG SDA SDB DA DB SG * 주 1 핀배열은케이블접속커넥터의접속면에서본것입니다 1 : N 연결 1:1 연결을참고하여아래의방식으로연결하십시오. TOP 케이블접속과싞호방향케이블접속과싞호방향싞호명싞호명싞호명 DA SDA SDA DB SDB SDB SDA DA DA SDB DB DB SG SG SG XDesignerPlus Ver2.0 외부장치접속매뉴얼 12 / 25
1 : 1 연결 TYPE B (A XTOP OM 2 포트 (9 핀 XTOP OM2 케이블접속핀배열 * 주1 싞호명핀번호싞호명 통싞케이블커넥터 젂면기준, D-SUB 9 Pin male( 수, 볼록 DA 1 + DB 4 SG 5 SDA 6 2 3 SG 7 8 SDB 9 * 주 1 핀배열은케이블접속커넥터의접속면에서본것입니다. (B XTOP OM 2 포트 (15 핀 XTOP OM2 케이블접속핀배열 * 주1 싞호명핀번호싞호명 통싞케이블커넥터 젂면기준, D-SUB 15 Pin male( 수, 볼록 1 + ( 생략 10 DA 11 DB 12 SDA 13 SDB 14 SG 15 * 주 1 핀배열은케이블접속커넥터의접속면에서본것입니다. ( ATOP OM 2 포트 ( 터미널블록 5 pin XTOP OM2 케이블접속핀배열 * 주1 싞호명싞호명 통싞케이블커넥터젂면기준 터미널블록 5 Pin DA + DB SDA SDB * 주 1 핀배열은케이블접속커넥터의접속면에서본것입니다 SG SG SG 1 : N / N : 1 연결 1:1 연결을참고하여아래의방식으로연결하십시오. TOP 케이블접속과싞호방향케이블접속과싞호방향싞호명싞호명싞호명 DA + + DB - - SDA SG SG SDB SG XDesignerPlus Ver2.0 외부장치접속매뉴얼 13 / 25
6. 지원어드레스 TOP에서사용가능한디바이스는아래와같습니다. PU 모듈시리즈 / 타입에따라디바이스범위 ( 어드레스 차이가있을수있습니다. TOP 시리즈는외부장치시리즈가사용하는최대어드레스범위를지원합니다. 사용하고자하는장치가지원하는어드레스범위를벖어나지않도록각 PU 모듈사용자매뉴얼을참조 / 주의하십시오. Bit Address Word Address 32 bits emarks oil 000001 065536 000001 065521 Discrete Input 100001 165536 100001 165521 * 주1 L/H Input egister 300001.00 365536.15 300001 365536 * 주1 Holding egister 400001.00 465536.15 400001 465536 * 주 1 쓰기불가능 ( 읽기젂용 XDesignerPlus Ver2.0 외부장치접속매뉴얼 14 / 25
Appendix A. Standatd MODBUS Protocol 본기기의 MODBUS Serial Master Driver 가지원하는 MODBUS 프로토콜및디바이스에대해설명합니다. At the message level, the MODBUS protocol still applies the master slave principle even though the network communication method is peer to peer. If a controller originates a message, it does so as a master device, and expects a response from a slave device. Similarly, when a controller receives a message it constructs a slave response and returns it to the originating controller. The Query: The function code in the query tells the addressed slave device what kind of action to perform. The data bytes contain any additional information that the slave will need to perform the function. For example, function code 03 will query the slave to read holding registers and respond with their contents. The data field must contain the information telling the slave which register to start at and how many registers to read. The error check field provides a method for the slave to validate the integrity of the message contents. The esponse: If the slave makes a normal response, the function code in the response is an echo of the function code in the query. The data bytes contain the data collected by the slave, such as register values or status. If an error occurs, the function code is modified to indicate that the response is an error response, and the data bytes contain a code that describes the error. The error check field allows the master to confirm that the message contents are valid. XDesignerPlus Ver2.0 외부장치접속매뉴얼 15 / 25
comment 수 (byte oils 27~20 oils 35~28 oils 43~36 수 (byte oils 51~44 oils 56~52 oils 27~20 oils 35~28 oils 43~36 oils 51~44 oils 56~52 A.1 0 Device (oil ead Single oil : 01 MASTE 기기에서 기기측 ( :17 번 의 000020 000056 oil 를읽어오는예제를통해 01 프레임을설명합 니다. TU Mode (Master : 요청프레임 디바이스점수 H L H L L H Hex 11 01 00 13 00 25 ( Master : 응답프레임 개 L H L H Hex 11 01 05 D 6B B2 0E 1B ASII Mode (Master : 요청프레임 oils 상태 oils 27 26 25 24 23 22 21 20 on/off 1 1 0 0 1 1 0 1 oils 35 34 33 32 31 30 29 28 on/off 0 1 1 0 1 0 1 1 oils 43 42 41 40 39 38 37 36 on/off 1 0 1 1 0 0 1 0 oils 51 50 49 48 47 46 45 44 on/off 0 0 0 0 1 1 1 0 oils 59 58 57 56 55 54 53 52 on/off 1 1 0 1 1 0: OFF / 1:ON H L H L H L H L L H ASII : 1 1 0 1 0 0 1 3 0 0 2 5 LF Hex 3A 31 31 30 31 30 30 31 33 30 30 32 35 0D 0A ( Master : 응답프레임 디바이스점수 개 H L H L H L H L H L L H ASII : 1 1 0 1 0 5 D 6 B B 2 0 E 1 B LF Hex 3A 31 31 30 31 30 35 43 44 36 42 42 32 30 45 31 42 0D 0A XDesignerPlus Ver2.0 외부장치접속매뉴얼 16 / 25
Force data Force data Force data comment Force data comment Force Single oil : 05 MASTE 기기에서 기기측의 oil 000173 에 FOE ON 하는예제를통해 05 프레임을설명합니다. TU Mode (Master : 요청프레임 Force Data High Low Force ON FF H 00 H Force OFF 00 H 00 H H L H L L H Hex 11 05 00 A FF 00 ( Master : 응답프레임 H L H L L H Hex 11 05 00 A FF 00 ASII Mode (Master : 요청프레임 H L H L H L H L L H ASII : 1 1 0 5 0 0 1 3 0 0 2 5 LF Hex 3A 31 31 30 31 30 30 41 43 45 45 30 30 0D 0A ( Master : 응답프레임 H L H L H L H L L H ASII : 1 1 0 5 0 0 1 3 0 0 2 5 LF Hex 3A 31 31 30 31 30 30 41 43 45 45 30 30 0D 0A XDesignerPlus Ver2.0 외부장치접속매뉴얼 17 / 25
comment 수 (byte 10204~10197 10212~10205 10218~10213 수 (byte 10204~10197 10212~10205 10218~10213 A.2 1 Device (Discrete Input ead Input Status : 02 MASTE 기기에서 기기측 ( :17 번 의 100197 100218 Input 를읽어오는예제를통해 02 프레임을설명 합니다. TU Mode (Master : 요청프레임 디바이스점수 H L H L L H Hex 11 02 00 4 00 16 ( Master : 응답프레임 개 (Inputs L H oils 상태 oils 204 203 202 201 200 199 198 197 on/off 1 0 1 0 1 1 0 0 oils 212 211 210 209 208 207 206 205 on/off 1 1 0 1 1 0 1 1 oils 220 219 218 217 216 215 214 213 on/off 1 1 0 1 0 1 0: OFF / 1:ON Hex 11 02 03 A DB 35 ASII Mode (Master : 요청프레임 H L H L H L H L L H ASII : 1 1 0 2 0 0 4 0 0 1 6 LF Hex 3A 31 31 30 32 30 30 43 34 30 30 31 36 0D 0A ( Master : 응답프레임 디바이스점수 개 (Inputs H L H L H L L H ASII : 1 1 0 2 0 3 A D B 3 5 LF Hex 3A 31 31 30 31 30 35 41 43 44 42 33 35 0D 0A XDesignerPlus Ver2.0 외부장치접속매뉴얼 18 / 25
comment 수 (byte 30009 egister (Word ount 수 (byte 40108 egister (Word A.3 3 Device (Input egister ead Input egisters : 04 MASTE 기기에서 기기측 ( :17 번 의 300009 egister 를읽어오는예제를통해 03 프레임을설명합니 다. TU Mode (Master : 요청프레임 디바이스점수 H L H L L H Hex 11 04 00 08 00 01 ( Master : 응답프레임 개 H L L H Hex 11 04 02 00 0A ASII Mode (Master : 요청프레임 H L H L H L H L L H ASII : 1 1 0 1 0 0 0 8 0 0 0 1 LF Hex 3A 31 31 30 31 30 30 30 38 30 30 30 31 0D 0A ( Master : 응답프레임 디바이스점수 개 H L L H ASII : 1 1 0 4 0 2 0 0 0 A LF Hex 3A 31 31 30 31 30 35 30 30 30 41 0D 0A XDesignerPlus Ver2.0 외부장치접속매뉴얼 19 / 25
comment 수 (byte 40108 egister 40109 수 (byte egister 40110 egister 40108 egister (Word 40109 egister 40110 egister A.4 4 Device (Holding egister ead Holding egisters : 03 MASTE 기기에서 기기측 ( :17 의 400108 400110 egister 를읽어오는예제를통해 03 프레임을설명합니 다. TU Mode (Master : 요청프레임 디바이스점수 H L H L L H Hex 11 03 00 6B 00 03 ( Master : 응답프레임 개 H L H L H L L H Hex 11 03 06 02 2B 00 00 00 64 ASII Mode (Master : 요청프레임 H L H L H L H L L H ASII : 1 1 0 1 0 0 1 3 0 0 2 5 LF Hex 3A 31 31 30 31 30 30 31 33 30 30 32 35 0D 0A ( Master : 응답프레임 디바이스점수 개 H L H L H L L H ASII : 1 1 0 3 0 6 0 2 2 B 0 0 0 0 0 0 6 4 LF Hex 3A 31 31 30 31 30 35 30 32 32 42 30 30 30 30 30 30 36 34 0D 0A XDesignerPlus Ver2.0 외부장치접속매뉴얼 20 / 25
Preset data Preset data Preset data comment Preset data comment Preset Single egister : 06 기기측의 400002 egister 에 00 03 (hex 를입력하는예제를통해 06 프레임을설명합니다. TU Mode (Master : 요청프레임 H L H L L H Hex 11 06 00 01 00 03 ( Master : 응답프레임 H L H L L H Hex 11 06 00 01 00 03 ASII Mode (Master : 요청프레임 H L H L H L H L L H ASII : 1 1 0 6 0 0 0 1 0 0 0 3 LF Hex 3A 31 31 30 36 30 30 30 31 30 30 30 33 0D 0A ( Master : 응답프레임 H L H L H L H L L H ASII : 1 1 0 6 0 0 0 1 0 0 0 3 LF Hex 3A 31 31 30 36 30 30 30 31 30 30 30 33 0D 0A XDesignerPlus Ver2.0 외부장치접속매뉴얼 21 / 25
comment comment (Word ount (Word ount Quantity of egister Quantity of egister 수 (Byte 40002 egister 40003 egister (Word ount (Word ount Quantity of egister Quantity of egister 수 (Byte 40002 egister 40003 egister Preset Multiple egister : 10 기기측의 400002 egister 에 00 0A (hex, 01 02 (hex 연속한두개의를입력하는예제를통해 10 프레 임을설명합니다. (Error ode : 90 H TU Mode (Master : 요청프레임 개 H L H L H L H L L H Hex 11 10 00 01 00 02 04 00 0A 01 02 ( Master : 응답프레임 H L H L L H Hex 11 10 00 01 00 02 ASII Mode (Master : 요청프레임 개 H L H L H L H L L H L H L ASII : 1 1 1 0 0 0 0 1 0 0 0 2 0 4 0 0 0 A 0 1 0 2 Hex 3A 31 31 31 30 30 30 41 43 30 30 30 32 30 34 30 30 30 41 30 31 30 32 ( Master : 응답프레임 계속 L H ASII LF Hex 0D 0A H L H L H L H L L H ASII : 1 1 1 0 0 0 0 1 0 0 0 2 LF Hex 3A 31 31 30 31 30 30 30 31 30 30 30 32 0D 0A XDesignerPlus Ver2.0 외부장치접속매뉴얼 22 / 25
A.5 L/ Generation (1 L Generation The Longitudinal edundancy heck (L field is one byte, containing an 8 bit binary value. The L value is calculated by the transmitting device, which appends the L to the message. The receiving device recalculates an L during receipt of the message, and compares the calculated value to the actual value it received in the L field. If the two values are not equal, an error results. The L is calculated by adding together successive 8 bit bytes in the message, discarding any carries, and then two s complementing the result. The L is an 8 bit field, therefore each new addition of a character that would result in a value higher than 255 decimal simply rolls over the field s value through zero. Because there is no ninth bit, the carry is discarded automatically. A procedure for generating an L is: 1. Add all bytes in the message, excluding the starting colon and ending LF. Add them into an 8 bit field, so that carries will be discarded. 2. Subtract the final field value from FF hex (all 1 s, to produce the ones complement. 3. Add 1 to produce the twos complement. Placing the L into the Message When the 8 bit L (2 ASII characters is transmitted in the message, the high order character will be transmitted first, followed by the low order character. For example, if the L value is 61 hex (0110 0001: Example An example of a language function performing L generation is shown below. The function takes two arguments: unsigned char *auchmsg ; // A pointer to the message buffer containing // binary data to be used for generating the L unsigned short usdatalen ; // The quantity of bytes in the message buffer. The function returns the L as a type unsigned char. L Generation Function static unsigned char L(auchMsg, usdatalen unsigned char *auchmsg ; /* message to calculate L upon */ unsigned short usdatalen ; /* quantity of bytes in message */ { unsigned char uchl = 0 ; /* L char initialized */ while (usdatalen /* pass through message buffer */ uchl += *auchmsg++ ; /* add buffer byte without carry */ return ((unsigned char( ((charuchl ; /* return twos complement */ } XDesignerPlus Ver2.0 외부장치접속매뉴얼 23 / 25
(2 Generation The yclical edundancy heck ( field is two bytes, containing a 16 bit binary value. The value is calculated by the transmitting device, which appends the to the message. The receiving device recalculates a during receipt of the message, and compares the calculated value to the actual value it received in the field. If the two values are not equal, an error results. The is started by first preloading a 16 bit register to all 1 s. Then a process begins of applying successive 8 bit bytes of the message to the current contents of the register. Only the eight bits of data in each character are used for generating the. Start and stop bits, and the parity bit, do not apply to the. During generation of the, each 8 bit character is exclusive Oed with the register contents. Then the result is shifted in the direction of the least significant bit (LSB, with a zero filled into the most significant bit (MSB position. The LSB is extracted and examined. If the LSB was a 1, the register is then exclusive Oed with a preset, fixed value. If the LSB was a 0, no exclusive O takes place. This process is repeated until eight shifts have been performed. After the last (eighth shift, the next 8 bit character is exclusive Oed with the register s current value, and the process repeats for eight more shifts as described above. The final contents of the register, after all the characters of the message have been applied, is the value. A procedure for generating a is: 1. Load a 16 bit register with FFFF hex (all 1 s. all this the register. 2. Exclusive O the first 8 bit byte of the message with the low order byte of the 16 bit register, putting the result in the register. 3. Shift the register one bit to the right (toward the LSB, zero filling the MSB. Extract and examine the LSB. 4. (If the LSB was 0: epeat Step 3 (another shift. (If the LSB was 1: Exclusive O the register with the polynomial value A001 hex (1010 0000 0000 0001. 5. epeat Steps 3 and 4 until 8 shifts have been performed. When this is done, a complete 8 bit byte will have been processed. 6. epeat Steps 2 through 5 for the next 8 bit byte of the message. ontinue doing this until all bytes have been processed. 7. The final contents of the register is the value. 8. When the is placed into the message, its upper and lower bytes must be swapped as described below. Placing the into the Message When the 16 bit (two 8 bit bytes is transmitted in the message, the low-order byte will be transmitted first, followed by the high-order byte. For example, if the value is 1241 hex (0001 0010 0100 0001: Example An example of a language function performing generation is shown on the following pages. All of the possible values are preloaded into two arrays, which are simply indexed as the function increments through the message buffer. One array contains all of the 256 possible values for the high byte of the 16 bit field, and the other array contains all of the values for the low byte. Indexing the in this way provides faster execution than would be achieved by calculating a new value with each new character from the message buffer. Note This function performs the swapping of the high/low bytes internally. The bytes are already swapped in the value that is returned from the function. Therefore the value returned from the function can be directly placed into the message for transmission. The function takes two arguments: unsigned char *puchmsg ; //A pointer to the message buffer containing //binary data to be used for generating the unsigned short usdatalen ; //The quantity of bytes in the message buffer. The function returns the as a type unsigned short. XDesignerPlus Ver2.0 외부장치접속매뉴얼 24 / 25
Generation Function unsigned short 16(puchMsg, usdatalen unsigned char *puchmsg ; /* message to calculate upon */ unsigned short usdatalen ; /* quantity of bytes in message */ { unsigned char uchhi = 0xFF ; /* high byte of initialized */ unsigned char uchlo = 0xFF ; /* low byte of initialized */ unsigned uindex ; /* will index into lookup table */ while (usdatalen /* pass through message buffer */ { uindex = uchhi ^ *puchmsgg++ ; /* calculate the */ uchhi = uchlo ^ auchhi[uindex} ; uchlo = auchlo[uindex] ; } return (uchhi << 8 uchlo ; } High-Order Byte Table /* Table of values for high order byte */ static unsigned char auchhi[] = { 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41, 0x01, 0x0, 0x80, 0x41, 0x00, 0x1, 0x81, 0x40 } ; Low-Order Byte Table /* Table of values for low order byte */ static char auchlo[] = { 0x00, 0x0, 0x1, 0x01, 0x3, 0x03, 0x02, 0x2, 0x6, 0x06, 0x07, 0x7, 0x05, 0x5, 0x4, 0x04, 0x, 0x0, 0x0D, 0xD, 0x0F, 0xF, 0xE, 0x0E, 0x0A, 0xA, 0xB, 0x0B, 0x9, 0x09, 0x08, 0x8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1, 0xD, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3, 0xF, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xE, 0x2, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6, 0xA, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xB, 0x7, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9, 0x5, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4, 0x8, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 } ; XDesignerPlus Ver2.0 외부장치접속매뉴얼 25 / 25