使用套接字编写Java程序以连接到PLC(可编程逻辑控制器)

时间:2013-01-03 16:17:12

标签: java sockets plc

我正在编写一个程序,通过套接字从PLC(Allen Bradley 1756 L63)中获取模拟和离散数据点。到目前为止,我在创建套接字时遇到了麻烦。我的代码如下:

import java.io.*;
import java.net.*;

class PLCServer
{
    public static void main(String argv[]) throws IOException
    {
        // IP address of the ethernet card
        String ENBTIP = "192.168.10.14";
        DataInputStream socketReader = null;
        PrintStream socketWriter = null;

        try 
        {
                Socket client = new Socket(ENBTIP, 9100);
                socketReader = new DataInputStream(client.getInputStream());
                socketWriter = new PrintStream(client.getOutputStream());
            } catch (UnknownHostException e) {
                System.out.println("Error setting up socket connection");
                System.out.println("host: 192.168.10.14 port: 9100");
            } catch (IOException e) {
                System.out.println("Error setting up socket connection: " + e);
                System.out.println("host: 192.168.10.14 port: 9100");
            }
        // Debugging code
        // System.out.println(InetAddress.getByName(ENBTIP).isReachable(10000));
    }
}

当我运行程序时,我得到连接拒绝异常。

输出:

nick@ubuntu:~/Java Programs/PLC Program$ java PLCServer 
Error setting up socket connection: java.net.ConnectException: Connection refused
host: 192.168.10.14 port: 9100

有人能给我一些指导吗?

1 个答案:

答案 0 :(得分:2)

你可以先尝试'ping 192.168.10.14',如果它有响应(它应该是),那么试试'telnet 192.168.10.14 9100'。如果它有一些响应,如: 尝试192.168.10.14 ... 连接到192.168.10.14。 然后你的java代码有点错误。否则就会出现网络问题。