wuyouming666
2023-09-07 f193e7058f32f759d5a5e8c4a6b1f71c7fb2f3a8
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
@@ -1,23 +1,29 @@
package com.example.springboot.component;
import cn.hutool.json.JSONObject;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import java.util.ArrayList;
import java.util.List;
public class PlcParameter extends Thread {
    private static final int SEND_INTERVAL = 10000;
    private static final int SEND_INTERVAL = 1000;
    private static final int WRITE_INTERVAL = 100;
    @Override
    private short[] params = new short[]{1111, 121, 3232, 0, 1, 0, 1, 0, 1, 0, 1, 0};
    List<Short> paramList = S7control.getinstance().ReadWord("DB100.DBW", 12);
// 将列表中的值复制到 params 数组中
    @Override
    public void run() {
        try {
            // 发送一次消息
            sendMessages();
//            sendMessages();
            // 延迟一段时间
            Thread.sleep(SEND_INTERVAL);
            while (true) {
                // 写入PLC
@@ -37,10 +43,8 @@
    private void sendMessages() {
        WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
        if (sendwServer != null) {
            List<Short> paramlist = S7control.getinstance().ReadWord("DB100.DBW", 12);
            JSONObject jsonObject = new JSONObject();
//            new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
            jsonObject.append("params", new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0});
            jsonObject.append("params", params);
            sendwServer.sendMessage(jsonObject.toString());
        }
    }
@@ -70,6 +74,13 @@
                    }
                }
                // 替换初始变量的值
                for (int i = 0; i < messageValues.size(); i++) {
                    if (i < params.length) {
                        params[i] = messageValues.get(i);
                    }
                }
                // 将消息值写入 PLC
                S7control.getinstance().WriteWord(addressList, messageValues);
                System.out.println("messageValues:" + messageValues);