| | |
| | | |
| | | public class PlcServoManualone extends Thread { |
| | | |
| | | |
| | | // 用于存储应用程序的配置信息 |
| | | private Configuration config; |
| | | |
| | | // 创建一个自定义的 S7 控制器消息处理器对象 |
| | | MessageHandler customS7Control = new MessageHandler(); |
| | | |
| | | |
| | | public PlcServoManualone() throws IOException { |
| | | config = new Configuration("config.properties"); |
| | |
| | | return writedstrIdOut; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | //A01组合中地址表集合 |
| | | List<String> addresses = Arrays.asList(config.getProperty("A01.addresses").split(",")); |
| | | //System.out.println(addresses); |
| | |
| | | List<Boolean> resumeTasks = S7control.getinstance().readBits(abortresumeTasks); |
| | | |
| | | short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray( |
| | | A01readBstart, A01readstart, A02readsBtart, A02readstart |
| | | ); |
| | | |
| | | A01readBstart, A01readstart, A02readsBtart, A02readstart); |
| | | |
| | | // 回零地址 |
| | | |
| | |
| | | rReset[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | |
| | | //所有未回零按钮转换为1和0 |
| | | List<Boolean> arraylist8 = S7control.getinstance().readBits(addresses8); |
| | | short[] params = new short[arraylist8.size()]; |
| | |
| | | boolean value = arraylist8.get(i); |
| | | params[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | |
| | | // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7}; |
| | | // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1)); |
| | |
| | | |
| | | jsonObject.append("resumeTasks", resumeTask); |
| | | |
| | | |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ServoManualone"); |
| | | // WebSocketServer sendwServer = |
| | | // WebSocketServer.sessionMap.get("ServoManualone"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | |
| | | |
| | | // 写入AO1组合 |
| | | customS7Control.WriteWordToPLC(messageArray, addresses, 0); |
| | | |
| | | |
| | | // 写入AO2组合 |
| | | customS7Control.WriteWordToPLC(messageArray, addresses2, 1); |
| | | |
| | | |
| | | // 复位按钮写入 |
| | | customS7Control.writeBitToPLC(messageArray, Reset, 2); |
| | |
| | | //A02半自动启动 |
| | | customS7Control.writeBitToPLC(messageArray, A02start, 9); |
| | | |
| | | |
| | | |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |