Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

종류

입력형식

설명

함수

OpenPort(포트번호, 통신속도, Parity, Data Bit, Stop Bit)

통신을 위한 시리얼 포트를 개방합니다.

함수

ClosePort(포트번호)

시리얼 포트를 폐쇄합니다.

함수

SendByte(포트번호, 전송할데이터)

지정한 포트를 통해 BYTE 데이터를 전송합니다.

함수

SendString(포트번호, 전송할데이터)

지정한 포트를 통해 문자열 데이터를 전송합니다.

함수

ReceiveByte(포트번호, 전송할데이터)

지정한 포트를 통해 데이터를 수신합니다.

함수

GetCommStatus(“디바이스이름”, “스테이션이름”)

지정한 스테이션의 통신 상태를 확인합니다.

서브루틴

EnableDriver(“디바이스이름”, “스테이션이름”, Enable/Disable)

지정한 스테이션의 통신을 제어합니다.

 

Image Added
  • EnableDriver() 명령의 경우 XpanelDesigner V2.52 기준으로 MODBUS RTU만 지원됩니다.

  • GetCommStatus() 명령의 경우 XpanelDesigner V2.52 이상에서만 사용할 수 있습니다.

다음 명령식에서 사용되는 포트번호, 통신속도, Parity, Stop Bit 는 미리 정의된 기호를 사용합니다. 해당 내용은 다음 표를 참조하여 주시기 바랍니다.

정의된 기호

의미

_COM232_

0

COM1 포트를 RS232C Mode로 사용한다.

_COM422_

1

COM1 포트를 RS422 Mode로 사용한다.

_COM485_

2

COM1 포트를 RS485 Mode로 사용한다.

_COMAUX_

3

COM2 포트를 RS232C Mode로 사용한다.

_BPS300_

 

300 bps

_BPS600_

 

600bps

_BPS1200_

 

1200bps

_BPS2400_

 

2400bps

_BPS4800_

 

4800bps

_BPS9600_

 

9600bps

_BPS19200_

 

19200bps

_BPS38400_

 

38400bps

_BPS56000_

 

56000bps

_BPS57600_

 

57600bps

_BPS115200_

 

115200bps

_BPS128000_

 

128000bps

_BPS256000_

 

256000bps

_PARITY_NONE_

 

NO PARITY BIT

_PARITY_EVEN_

 

EVEN PARITY

_PARITY_ODD_

 

ODD PARITY

_PARITY_MARK_

 

MARK PARITY

_PARITY_SPACE_

 

SPACE PARITY

_STOPBIT_ONE_

 

1 STOP BIT

_STOPBIT_TWO_

 

2 STOP BITS

_STOPBIT_ONE5_

 

1.5 STOP BIT

 

OpenPort

통신을 위한 시리얼 포트를 개방합니다.

함수명

n=OpenPort(포트번호, 통신속도, Parity, Data Bit, Stop Bit)

기능

포트번호 (_COMxxx_ 의 형식으로 선언)

통신속도 (_BPSxxx_ 의 형식으로 선언)

Parity (_PARITY_xxx_ 의 형식으로 선언)

Data Bit (7 또는 8)

Stop Bit (_STOPBIT_xxx_ 의 형식으로 선언)

이 스크립트는 통신을 위해 시리얼 포트를 개방합니다. Xpanel에는 두개의 시리얼 포트(COM1, COM2)가 제공됩니다.

COM1 포트는 3가지 모드(RS232C, RS422, RS485)로 설정하여 사용할 수 있습니다.

I/O 디바이스 설정으로 이미 통신을 하고 있거나, 스크립트 실행 이전에 개방되어 있는 통신포트에 대해서는 스크립트를 실행할 수 없습니다. 스크립트를 실행하기 전에 사용하고자 하는 통신포트의 개방 유무를 확인하시기 바랍니다.

스크립트를 실행한 후 또는 이전에 스크립트를 실행하여 포트가 개방된 상태라면, ClosePort() 를 이용하여 포트를 닫는 동작을 실행해 주시기 바랍니다.

포트 개방시 에러가 발생하면, 스크립트는 0을 리턴합니다. 포트가 성공적으로 개방되면, 스크립트는 0이 아닌 다른 값을 리턴합니다.

사용 예제

COM1 통신 포트를 통신이 가능하도록 개방합니다. 통신포트는 RS485 통신방식으로 19200bps, Parity 없음, 데이터 비트 8, 스톱비트 1의 통신 파라미터를 가지고 통신할 수 있도록 설정됩니다.

OpenPort(_COM485_, _BPS19200_, _PARITY_NONE_, 8, _STOPBIT_ONE_);

 

ClosePort

시리얼 포트를 폐쇄합니다.

함수명

n=ClosePort(포트번호)

기능

포트번호 (_COMxxx_ 의 형식으로 선언)

스크립트가 실행되면 OpenPort() 함수를 이용하여 개방한 통신포트를 닫습니다.

성공적으로 폐쇄되면 0이 아닌 다른 값을, 실패하면 0을 리턴합니다.

사용 예제

COM1 포트를 닫습니다.

ClosePort(_COM485_);

 

SendByte

지정한 포트를 통해 BYTE 데이터를 전송합니다.

함수명

n=SendByte(포트번호, 전송할데이터)

기능

포트번호 (_COMxxx_ 의 형식으로 선언)

전송할 데이터 (0~255)

OpenPort() 함수를 이용하여 개방된 통신포트를 통해 데이터를 전송할 때 사용합니다.

전송할 데이터는 반드시 0(0x00) 에서 255(0xFF)사이의 byte 데이터이어야 합니다. 지정된 값이 255(0xFF)보다 클 경우 1 byte이상의 값은 무시가 되고 하위 byte만 전송이 됩니다.

예를 들면 전송할 데이터로 지정된 값이 0x1234일 경우 실제 포트를 통해 전송되는 데이터는 0x34 입니다.

스크립트가 실행되기 위해서는 반드시 통신포트가 OpenPort()를 이용하여 개방되어 있는 상태이어야 합니다.

성공적으로 전송되면 0이 아닌 값을, 실패하는 경우 0을 리턴합니다.

사용 예제

RS485통신을 하는 COM1포트를 통해 BYTE 데이터 2를 전송합니다.

SendByte(_COM485_, 2);

 

SendString

지정한 포트를 통해 문자열 데이터를 전송합니다.

함수명

n =SendString(포트번호, 전송할데이터)

기능

포트번호 (_COMxxx_ 의 형식으로 선언)

전송할 데이터 (문자열 태그 또는 “문자열”의 형식으로 지정)

OpenPort() 함수를 이용하여 개방된 통신포트를 통해 데이터를 전송할 때 사용합니다.

전송할 데이터는 반드시 문자열 태그거나 문자열 데이터여야 합니다. 문자열 데이터를 직접 입력하는 경우 큰따옴표 (“ ”)를 반드시 사용하시기 바랍니다.

스크립트가 실행되기 위해서는 반드시 통신포트가 OpenPort()를 이용하여 개방되어 있는 상태이어야 합니다.

성공적으로 전송되면 0이 아닌 값을, 실패하는 경우 0을 리턴합니다.

사용 예제

RS485통신을 하는 COM1포트를 통해 “TEXT” 를 전송합니다.

SendString(_COM485_, “TEXT”);

 

ReceiveByte

지정한 포트를 통해 데이터를 수신합니다.

함수명

n=ReceiveByte(포트번호, 전송할데이터)

기능

포트번호 (_COMxxx_ 의 형식으로 선언)

전송할 데이터 (0~255)

OpenPort() 함수를 이용하여 개방된 통신포트를 통해 BYTE 데이터를 수신합니다.

성공적으로 데이터를 수신하면 전송할 데이터 (0~255)를 변수에 저장합니다. 지정된 Timeout 시간이 지날 때까지 수신되는 데이터가 없는 경우 256을 리턴합니다.

스크립트가 실행되기 위해서는 반드시 통신포트가 OpenPort()를 이용하여 개방되어 있는 상태이어야 합니다.

사용 예제

RS485 통신을 하는 COM1 통신 포트를 통해 byte 데이터를 수신하고, 수신된 데이터를 ‘RxData’ 로 선언된 변수에 저장합니다.

VAR RxData;

OpenPort(_COM485_, _BPS19200_, _PARITY_NONE_, 8, _STOPBIT_ONE_);

RxData = RecieveByte(_COM485_, 1000);

If(RxData < 256)

{

}

……

 

GetCommStatus

지정한 스테이션의 통신 상태를 확인합니다.

함수명

n=GetCommStatus(“디바이스이름”, “스테이션이름”)

기능

지정한 디바이스 이름스테이션 이름에 대한 통신 상태를 확인합니다. 통신이 정상이면 1을, 비정상이면 0을 리턴합니다.

사용 예제

PLC 디바이스의 STATION 스테이션에 대한 통신 상태를 확인합니다.

CommStatus = GetCommStatus(“PLC”, “STATION”);

 

EnableDriver

지정한 스테이션의 통신을 제어합니다.

서브루틴명

EnableDriver(“디바이스이름”, “스테이션이름”, Enable/Disable)

기능

지정한 디바이스 이름스테이션 이름에 대한 통신을 제어합니다.

Enable/Disable에 1을 입력하면 Enable을 의미하며, 0을 입력하면 Disable을 의미합니다.

본 함수는 XpanelDesigner V2.52를 기준으로 MODBUS RTU만 지원합니다.

사용 예제

MODBUS 디바이스의 STATION 스테이션을 Enable 합니다.

EnableDriver(“MODBUS”, “STATION”, 1);