본 문서에서는 산업 현장에서 널리 사용되는 MODBUS 프로토콜을
ComfilePi에서 구현하는 방법을 설명합니다.
NModbus4 라이브러리를 사용하면 MODBUS 통신을 비교적 간단하게 구성할 수 있습니다.
ComfilePi의 RS232 COM0 포트와 PLC의 RS232 포트를 아래와 같이 연결합니다.
| |
|---|
※ 본 예제에서 사용된 PLC는 컴파일테크놀로지의 MSB612RA-DC 입니다.
Visual Studio에서 NModbus4 라이브러리를 추가하는 방법입니다.
NModbus4 사용 시 필요한 기본 설정과 주요 함수입니다.
ComfilePi와 Windows 환경에서 포트 이름이 다르므로 아래와 같이 분기 처리합니다.
string portName = Environment.OSVersion.Platform == PlatformID.Win32NT ? "COM0" : "/dev/serial0"; SerialPort port = new SerialPort(portName, 115200); port.ReadTimeout = 100; port.WriteTimeout = 100; port.Open();
Modbus RTU Master는 ModbusSerialMaster 클래스를 사용합니다.
bool[] ReadCoils(byte slaveAddress, ushort startAddress, ushort numberOfPoints); ushort[] ReadHoldingRegisters(byte slaveAddress, ushort startAddress, ushort numberOfPoints); ushort[] ReadInputRegisters(byte slaveAddress, ushort startAddress, ushort numberOfPoints); bool[] ReadInputs(byte slaveAddress, ushort startAddress, ushort numberOfPoints); ushort[] ReadWriteMultipleRegisters(byte slaveAddress, ushort startReadAddress, ushort numberOfPointsToRead, ushort startWriteAddress, ushort[] writeData); void WriteMultipleCoils(byte slaveAddress, ushort startAddress, bool[] data); void WriteMultipleRegisters(byte slaveAddress, ushort startAddress, ushort[] data); void WriteSingleCoil(byte slaveAddress, ushort coilAddress, bool value); void WriteSingleRegister(byte slaveAddress, ushort registerAddress, ushort value);
빌드 후 생성된
을 ComfilePi의 `/home/pi` 경로에 복사하여 실행합니다.
본 예제는
구성으로 작성되었습니다.