Dear Sir:
- I had a hardware(switch), direct connect to computer com1 using R485 line.
- I can turn the switch on/off using standard serial test code.
- I can also using following rxtx( same version as scadabr using) java code to turn it on/off.
now with mango, I created modbus serial data source, and it can scan found 1 node. But when create data point,
there is no "output" option for "Register range", so I do not know how to continue.
would you please help me how to create data source ( modbus serial or .. ?) ,
data point and script to turn the switch on/off ?
Thanks a lot.
william
wf321@163.com
*********************************** RXTX CODE ****************************
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public static void main ( String[] args )
{
connect("COM1");
}
void connect ( String portName ) throws Exception
{
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(4800,SerialPort.DATABITS_8,SerialPort.STOPBITS_2,SerialPort.PARITY_NONE);
System.out.println(serialPort.getName());
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
// send 8 int to control the switch
int len = 8;
int[] buffer = new int[len];
buffer[0] = 0x01; // com1
buffer[1] = 0x05;
buffer[2] = 0x00; // port 0
buffer[3] = 0x01; // channel
buffer[4] = 0xff; // turn the switch on , 0X00 means tuen off
buffer[5] = 0x00;
buffer[6] = 0xdd; // check use crc16
buffer[7] = 0xfa; // check use crc16
for (int i = 0; i < len; i++)
{
System.out.println(buffer*);
out.write(buffer*);
}
out.flush();
commPort.close();
}