NetEyeBox(A) V.2.0 (Ethernet to DI/PI+RS485) Connect your devices to TCP/IP network Ethernet to DI/PI + RS485 Product Part Number: 3302-Ethernet SM Information and Communication Homepage : http://www.smic21.com Support : +82-2-6292-2100 khg@smic.co.kr, smic21@smic21.com Address :A-705 Sktwintech Bld. Gassandong, GeumcheonGu, Seoul Korea Zip 153-023
Device Feature Connect your devices to TCP/IP network I/O channel number-----------------------------16di(pi)+ 1 Serial(RS485) Input range-------------------------------------------------------------+12v~+36v DI/PI Input signal--------------------------------wet Contact, Falling Edge DOI Output signal----------------------------------------------open Collector Counter frequency-----------100hz@16channels;1000hz@1channel Counter length----------------------------------------------------------------32-bit Output BUS-------------------------------------------------------Ethernet 802.3 Output Protection------------------------------------------Lightening, static Power input--------------------------------------------12v(dc),110~220v(ac) Power consumption--------------------------------------------------------<0.6w Ambient temperature: Operation------------------------------------------------- -20~70 (-13~185 ) Application: Remote data acquisition Process monitoring Industrial process control Energy management Supervisory control Security systems Laboratory automation Building automation Product testing Direct digital control
NetEyeBox(A) Ethernet to 16(DI/Counter)
16DI/Counter Connection VCC1 DI1 DI2 DI3 DI4 DI5 DI6 DI7 DI8 RS485+ Digital Input 1 Digital Input 2 24VDC 12~36VDC VCC2 DI9 DI10 DI11 DI12 DI13 DI14 DI15 DI16 RS485- Ground Relay(Contact) 단자대
6. NetEyeBox(A) Data Communication NetEyeBox(A) 의 TCP/IP 접속이성공하면 Modbus Protocol 를통하여 Modbus Register Map의내용을읽거나쓸수있다. Modbus Protocol 가장많이사용되고잘정립된 Protocol 이다. 주로다양한 PLC와통신모듈 DI/DO/AI등여러장비에신뢰성있는통신방법을제공한다. 내용은아주간단하다약속된프로토콜과 Memory Map이제공된다.. Hardware는 Master와 Slave로구분된다.(TCP/IP 용어로는 Client 와 Server라고한다 ). Data를처음보내는측이 Master이고 Client이다. Hardware내부의저장가능한 Memory에 Memory Map이저장되고있고약속된 Data을보내면그에따라 Memory Map에서대응되는데이터를송신하는구조로되어있다. Memory Map Data Request 요구된 Memory Data Master(Client) Slave(Server) Device Modbus Protocol의 Data Packet는모두 Hexa Value를사용하며다양한명령어 Type을가지고있지만주로 READ와 WRITE만사용된다. READ는 Type 0x03이고 WRITE는 Type 0x06이다. Master 는 Slave Device의 ID와명령어의 Type(READ or WRITE), Memory Map의 address와가져올 Data Packet (Register 수로표현됨 ) 의수그리고 Error Detection을위한 2bytes의 CRC 를보낸다. 이에대하여 Slave는같은형태로요청된 Data Packet으로응답한다. Slave가여러개붙어도 TCP/IP의 Socket한라인을통하여모두와통신할수있으므로확장성이우수하다수백 channel의통제도가능하다.
전형적인 Modbus Protocol 의 Packet 구조. BYTES 설명 ( 모두 HEXA Value 로설정합니다.) Bytes1 Bytes2 Bytes3 Bytes4 Bytes5 Bytes6 Bytes7 Bytes8 RS485의 Device ID READ or WRITE 기능읽거나쓰게될 Memory Map의시작주소 Address 시작주소 Address 의 High byte 시작주소 Address의 Low byte 읽거나쓰게될 Register(1word) 의수 CRC high bytes CRC low bytes NetEye3XXX Series Default Parameters Address of device: 254 개 ID Baudrate: 19200 Default Channel: enable all channels Filtering: 200us~300mls for frequency input
CRC Error Correcting Details Check field calculation Sample Code in C language) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> unsigned short CRC16(unsigned char *, int); void main() { unsigned char SendData[10], *pmsg; unsigned char Len; unsigned short crc16=0xffff; pmsg=&senddata[0]; Len=0x06; memset(&senddata[0], 0x01, 1); memset(&senddata[1], 0x03, 1); memset(&senddata[2], 0x00, 1); memset(&senddata[3], 0x64, 1); memset(&senddata[4], 0x00, 1); memset(&senddata[5], 0x01, 1); crc16= CRC16(pMsg, Len); printf("crc16 is %x\n", crc16); system("pause"); } unsigned short CRC16(unsigned char*addr, int num) { unsigned short CRC = 0xFFFF; unsigned short CRCT= 0x0000; int i; while (num--) { CRC ^= *addr++; for (i = 0; i < 8; i++) { if (CRC & 1) { CRC >>= 1; CRC ^= 0xA001; } else { CRC >>= 1; } } } CRCT=CRC; CRCT=CRCT<<8; CRC=CRC >> 8; CRC=CRC CRCT; return CRC; }
Setting 순서 1. NetEye 1500 Setup Program을실행한다. 2. NetEye1500 Manual을 www.smic21.com에서 Down 받아 Setting 한다. 3. I/O Device Parameter 변경시 NeEye1500 Serial Port를 RS485로, Baudrate는 19200 bps, N, 8, 1로 Setting하여통신되도록한후 I/O Device의 Parameter ( Device ID, Baudrate 등을변경할수있다. 4. Program으로통신테스트하기전에장비를테스트하기위하여 www.smic21.com 에서CRCCreate 프로그램을 down 받고 NetEye1500 Setup Program의 Tool Menu 에서 Simulator 를이용하여 I/O Device 통신을테스트한다.
* 다음은 NetEyeS3302(16DI/Counter) 를기준으로한테스트이며모든 NetEyeBox 시리즈 에동일하게적용된다. 4. CRCcreat.exe Program: CRC16 check sum data 를 2 bytes 생성시킨다. 5. NetEye Simulator: 모든 NetEye Setup Program 의 Simulator 를통하여 NetEyeS3302 와통신하기위 하여 Modbus Protocol 에의한 Request Data 를보낸다.
6. 아래는초기에 Device ID 를확인하는방법이다. Device ID 확인방법 1) PC-> NE3302 ADDR 내용 Value(HEX) 비고 0 고정 ff Broadcast ID 1 Read/Write 03 Read Mode 2 ADDR-H 00 3 ADDR-L 06 4 Data Count -H 00 5 Data Count -L 01 NES3302 의 ADDR Register Reading Register 의갯수 6 CRC-1 71 계산식 7 CRC-2 D5 계산식 2) PC <- NE3302 응답 ADDR 내용 Value(HEX) 비고 0 고정 ff 1 Read/Write 03 Read Mode 2 Count 02 Data Count (ADDR9~10) 3 고정 00 4 Device Address 초기치 : FE(254) NES3302 의설정된 ADDR 현재는 FE 로설정되어있음 5 CRC-1 0 계산식 6 CRC-2 0 계산식 Device ID 변경방법 3) PC-> NES3302 ADDR 내용 Value(HEX) 비고 0 ID ADDR FE 현재 NES4300S 의 ID ADDR 1 Read/Write 06 Write Mode 2 ADDR-H 00 NE3302의 ADDR 의 3 ADDR-L 06 Register 4 변경 ADDR -H 00 5 변경 ADDR -L 01~FE 6 CRC-1 BC 계산식 NES3302 의변경할 ID ADDR 현재는 01~FE 까지로설정할수있다. 7 CRC-2 04 계산식
7. 상기의통신내용은 Device ID 01의 NetEyeS3302 device에서 Hexa 0x64 즉 100번째 register 에서 Register 1개를읽는내용이다. 8. Device 01로부터 Register 1개 2bytes FF FF를읽은결과이다. 100 번지 register는 Digital Input의상태를나타낸다. 9. 100 번지 register의 2 bytes는 16 channel의 Digital Input 상태를나타낸다. In-active 일때 1, Active 즉입력전압이인가되었을때 0 이 bit 별도할당된다. 10. 상기의내용은읽혀진 2 bytes 가 FF FE 는 16 Digital Input Channel 중첫번째채널이 0 으로 set 되어진것을의미한다. 11. 상기의내용은읽혀진 2 bytes가 FF FF 는 16 Digital Input Channel중첫번째채널에 Count 되어진숫자가 Hexa 10 즉 16개누적된것을의한다. 12. 다른채널도 register값 address와 0x64, 0x65등으로바꾸어서다른채널의상태를읽어볼수있다.
13. Counter Reset 100 번째 register 00 64 에서 3 개의 address 를읽는다. DI 16 ch 이 FF FE 이고첫번째 ch 의 Counter 값이 Hexa 00 10 즉 16 이다. 102 번째 register 00 66 을 0 으로 reset 한다. 0 으로 reset 한 Ack 를받는다. 100 번째 register 00 64 에서부터 4 개의 address 를읽어본다. DI 16 channel 상태와첫번째 ch 의 Counter 값이 0 으로 reset 된것을볼수있다.
3302-Ethernet Register Map. * 모든값들은 Program 시에 HEXA Value 로바꾸어사용합니다.
3302-Ethernet Register Map.
3302-Ethernet Register Map.
3301-Ethernet Register Map. * 모든값들은 Program 시에 HEXA Value 로바꾸어사용합니다.
3301-Ethernet Register Map. * 모든값들은 Program 시에 HEXA Value 로바꾸어사용합니다.