package com.example.pdaplccontrol; final class PlcConfig { // 参数集中放置,现场地址变化时只改这里。 static final String PLC_IP = "192.168.11.1"; static final int RACK = 0; static final int SLOT = 1; static final int DB_NUMBER = 49; static final int LINE_NUMBER_OFFSET = 32; static final int WEIGHT_KG_OFFSET = 34; static final int WORD_BYTE_LENGTH = 2; static final int MONITOR_START_OFFSET = LINE_NUMBER_OFFSET; static final int MONITOR_BYTE_LENGTH = WEIGHT_KG_OFFSET + WORD_BYTE_LENGTH - MONITOR_START_OFFSET; // 监控常规轮询间隔(5000毫秒)。设为 5 秒是为了降低 PDA 与 PLC 的网络交互负荷。 static final int MONITOR_INTERVAL_MILLIS = 5000; // 监控发生第一次读取失败时的退避重试延迟(2000毫秒)。初次失败快速重试,以规避偶发抖动。 static final int MONITOR_FIRST_FAILURE_RETRY_MILLIS = 2000; // 监控发生第二次读取失败时的退避重试延迟(3000毫秒)。 static final int MONITOR_SECOND_FAILURE_RETRY_MILLIS = 3000; // 监控发生多次连续失败时的最大退避延迟(5000毫秒)。防止网络彻底断开时高频请求占用设备连接资源。 static final int MONITOR_MAX_FAILURE_RETRY_MILLIS = 5000; // 判定通讯异常的连续失败次数阈值。达到 3 次失败才报错,避免网络偶发丢包导致界面闪红。 static final int MONITOR_FAILURE_THRESHOLD = 3; // 判定通讯数据失效的兜底时间阈值(15秒)。用于防止由于其他原因导致的监控界面数据僵死、长期未刷新的情况。 static final long MONITOR_STALE_THRESHOLD_MILLIS = 15000L; static final int MIN_LINE_NUMBER = 10; static final int MAX_LINE_NUMBER = 18; static final int MIN_WEIGHT_KG = 0; static final int MAX_WEIGHT_KG = 30; private PlcConfig() { } }