package com.zy.acs.conveyor.core.constant;
|
|
|
/**
|
* 站点状态字段枚举(对应 §2.1)
|
*/
|
public enum StationStatusField {
|
ALL("DB100", 0, 12),
|
TASK_NUMBER("DB100", 0, 4), // 任务号,偏移0,4字节
|
FINAL_TARGET("DB100", 4, 2), // 最终目标站,偏移4,2字节
|
STATUS_WORD("DB100", 6, 2), // 状态字,偏移6,2字节
|
TASK_WRITABLE("DB100", 8, 2); // 任务可写区,偏移8,2字节
|
|
private final String addressPattern;
|
private final int offset;
|
private final int byteLength;
|
|
StationStatusField(String addressPattern, int offset, int byteLength) {
|
this.addressPattern = addressPattern;
|
this.offset = offset;
|
this.byteLength = byteLength;
|
}
|
|
/**
|
* 根据 DB 块编号和站点偏移生成具体地址
|
*
|
* @return PLC4X 地址字符串,如 "DB100.D0"
|
*/
|
public String buildAddress() {
|
return addressPattern+PlcConstant.ADDRESS_CONCATENATION+ offset;
|
}
|
|
|
public String getAddressPattern() {
|
return addressPattern;
|
}
|
|
public int getOffset() {
|
return offset;
|
}
|
|
public int getByteLength() {
|
return byteLength;
|
}
|
}
|