|
@@ -59,8 +59,8 @@ class S7PointCreateItem(TypedDict):
|
|
|
"{base_url}/api/dc-gateway/s7/read。请求字段使用网关/汇采一致命名:"
|
|
"{base_url}/api/dc-gateway/s7/read。请求字段使用网关/汇采一致命名:"
|
|
|
"ip 为 PLC 地址,port 默认 102,rock 为机架号,slot 为槽号,"
|
|
"ip 为 PLC 地址,port 默认 102,rock 为机架号,slot 为槽号,"
|
|
|
"device_type 为设备类型,默认 S7-1200,可传 S7-1200、S7-Smart200。"
|
|
"device_type 为设备类型,默认 S7-1200,可传 S7-1200、S7-Smart200。"
|
|
|
- "tsap_conn_type 可选 PG、OP、BASIC;未传时 S7-1200 使用 PG,"
|
|
|
|
|
- "device_type=S7-Smart200 时使用 OP。read 必须包含 area、start、size;"
|
|
|
|
|
|
|
+ "tsap_conn_type 可选 PG、OP、BASIC;未传时统一使用 PG;只有明确需要 OP/BASIC 时才显式传。"
|
|
|
|
|
+ "read 必须包含 area、start、size;"
|
|
|
"area 可用 DB、M、I、Q,S7-Smart200 还支持 V;area=DB 时 read.db 必须大于 0。"
|
|
"area 可用 DB、M、I、Q,S7-Smart200 还支持 V;area=DB 时 read.db 必须大于 0。"
|
|
|
"该接口不解析业务值,只返回语义化 communication:S7_CONNECT、S7_CONNECTED、"
|
|
"该接口不解析业务值,只返回语义化 communication:S7_CONNECT、S7_CONNECTED、"
|
|
|
"S7_READ、原始十六进制字节、S7_DISCONNECT 或 S7_ERROR。"
|
|
"S7_READ、原始十六进制字节、S7_DISCONNECT 或 S7_ERROR。"
|
|
@@ -96,8 +96,8 @@ def s7_raw_read(
|
|
|
"{base_url}/api/dc-gateway/s7/read_points。请求字段使用网关/汇采一致命名:"
|
|
"{base_url}/api/dc-gateway/s7/read_points。请求字段使用网关/汇采一致命名:"
|
|
|
"ip 为 PLC 地址,port 默认 102,rock 为机架号,slot 为槽号,"
|
|
"ip 为 PLC 地址,port 默认 102,rock 为机架号,slot 为槽号,"
|
|
|
"device_type 为设备类型,默认 S7-1200,可传 S7-1200、S7-Smart200。"
|
|
"device_type 为设备类型,默认 S7-1200,可传 S7-1200、S7-Smart200。"
|
|
|
- "tsap_conn_type 可选 PG、OP、BASIC;未传时 S7-1200 使用 PG,"
|
|
|
|
|
- "device_type=S7-Smart200 时,tsap_conn_type使用 OP。points 为点位数组,每个点位必须包含 "
|
|
|
|
|
|
|
+ "tsap_conn_type 可选 PG、OP、BASIC;未传时统一使用 PG;只有明确需要 OP/BASIC 时才显式传。"
|
|
|
|
|
+ "points 为网关读取格式的点位数组,每个点位必须包含 "
|
|
|
"area、start、type;area 可用 DB、M、I、Q,S7-Smart200 还支持 V;"
|
|
"area、start、type;area 可用 DB、M、I、Q,S7-Smart200 还支持 V;"
|
|
|
"area=DB 时 db 必须大于 0。"
|
|
"area=DB 时 db 必须大于 0。"
|
|
|
"type 可用 bool、byte、int8、int16、uint16、int32、uint32、int64、uint64、"
|
|
"type 可用 bool、byte、int8、int16、uint16、int32、uint32、int64、uint64、"
|
|
@@ -146,8 +146,6 @@ def _resolve_collector_s7_tsap_conn_type(device_type: int, tsap_conn_type: str |
|
|
|
normalized_tsap = str(tsap_conn_type or "").strip().upper()
|
|
normalized_tsap = str(tsap_conn_type or "").strip().upper()
|
|
|
if normalized_tsap:
|
|
if normalized_tsap:
|
|
|
return normalized_tsap
|
|
return normalized_tsap
|
|
|
- if int(device_type) == 3:
|
|
|
|
|
- return "OP"
|
|
|
|
|
return "PG"
|
|
return "PG"
|
|
|
|
|
|
|
|
|
|
|
|
@@ -155,15 +153,17 @@ def _resolve_collector_s7_tsap_conn_type(device_type: int, tsap_conn_type: str |
|
|
|
name="collector.s7_device_create",
|
|
name="collector.s7_device_create",
|
|
|
description=(
|
|
description=(
|
|
|
"汇采-批量创建 S7 设备。依次调用 {data_collector_base_url}/api/collector/device,"
|
|
"汇采-批量创建 S7 设备。依次调用 {data_collector_base_url}/api/collector/device,"
|
|
|
- "与 Modbus 创建设备共用地址,但请求体固定 type=s7,入参使用 S7 字段。"
|
|
|
|
|
- "全部设备创建调用完成后会内部调用设备列表并匹配每个设备 id;如果匹配到多个设备,"
|
|
|
|
|
- "选择 id 最大的。devices 每项必须传 name 名称、ip IP 地址、rock 机架号(轨道号)、slot 槽号;"
|
|
|
|
|
- "port 默认 102,device_type 默认 1。tsap_conn_type 可选 PG、OP、BASIC;"
|
|
|
|
|
- "未传时 device_type=1 使用 PG,device_type=3 时使用 OP。"
|
|
|
|
|
|
|
+ "type=s7。接收project_key和devices列表,"
|
|
|
|
|
+ "devices 每项必须传 name 名称、ip IP 地址、rock 机架号(轨道号)、slot 槽号;"
|
|
|
|
|
+ "port 默认 102,device_type 默认 1。device_type 必须使用数字枚举,不要传网关读取工具里的字符串:"
|
|
|
|
|
+ "1=S7-1200, 2=S7-1500, 3=S7-Smart200。tsap_conn_type 可选 PG、OP、BASIC;"
|
|
|
|
|
+ "未传时统一使用 PG;只有现场测试或扫描确认需要 OP/BASIC 时才显式传。"
|
|
|
"默认参数: is_persistent=false, "
|
|
"默认参数: is_persistent=false, "
|
|
|
"device_group_id=0, timeout=3, alarm_interval=90, collect_interval=5。"
|
|
"device_group_id=0, timeout=3, alarm_interval=90, collect_interval=5。"
|
|
|
- "device_type: 1=S7-1200, 2=S7-1500, 3=S7-Smart200。"
|
|
|
|
|
- "tsap_conn_type 可用 PG、OP、BASIC。返回批量结果,state=0 表示全部创建并匹配成功。"
|
|
|
|
|
|
|
+ "从设备 CSV/网关结果转换时:S7-Smart200=>device_type=3;创建入参示例 "
|
|
|
|
|
+ "{name:'plc1',ip:'192.168.1.10',port:102,rock:0,slot:1,device_type:3,tsap_conn_type:'PG'}。"
|
|
|
|
|
+ "全部设备创建调用完成后会内部调用设备列表并匹配每个设备 id,"
|
|
|
|
|
+ "返回批量结果,state=0 表示全部创建并匹配成功。"
|
|
|
),
|
|
),
|
|
|
)
|
|
)
|
|
|
def collector_s7_device_create(
|
|
def collector_s7_device_create(
|
|
@@ -178,7 +178,7 @@ def collector_s7_device_create(
|
|
|
description=(
|
|
description=(
|
|
|
"汇采-编辑 S7 设备。调用 {data_collector_base_url}/api/collector/s7/device/update。"
|
|
"汇采-编辑 S7 设备。调用 {data_collector_base_url}/api/collector/s7/device/update。"
|
|
|
"必须传 ori_id 原设备 id、name、ip、rock、slot;port 默认 102,device_type 默认 1,"
|
|
"必须传 ori_id 原设备 id、name、ip、rock、slot;port 默认 102,device_type 默认 1,"
|
|
|
- "tsap_conn_type 可选 PG、OP、BASIC;未传时 device_type=1 使用 PG,device_type=3 时使用 OP。"
|
|
|
|
|
|
|
+ "tsap_conn_type 可选 PG、OP、BASIC;未传时统一使用 PG;只有明确需要 OP/BASIC 时才显式传。"
|
|
|
"编辑前设备不能处于已连接状态;若已连接,请先调用 "
|
|
"编辑前设备不能处于已连接状态;若已连接,请先调用 "
|
|
|
"collector.device_disconnect,并传 device_type=s7。该接口是全量更新语义。"
|
|
"collector.device_disconnect,并传 device_type=s7。该接口是全量更新语义。"
|
|
|
"默认参数: is_persistent=false, device_group_id=0, timeout=3, alarm_interval=90, "
|
|
"默认参数: is_persistent=false, device_group_id=0, timeout=3, alarm_interval=90, "
|
|
@@ -232,8 +232,14 @@ def collector_s7_device_edit(
|
|
|
"valid_range_end=null。register_type: 1=I输入区, 2=Q输出区, 3=M存储区, 4=DB数据块, "
|
|
"valid_range_end=null。register_type: 1=I输入区, 2=Q输出区, 3=M存储区, 4=DB数据块, "
|
|
|
"5=V区, 6=AI模拟输入;register_area 可用 I、Q、M、DB、V、AI。"
|
|
"5=V区, 6=AI模拟输入;register_area 可用 I、Q、M、DB、V、AI。"
|
|
|
"data_type 可用 bool, uint8, int8, uint16, int16, uint32, int32, float32, float64。"
|
|
"data_type 可用 bool, uint8, int8, uint16, int16, uint32, int32, float32, float64。"
|
|
|
|
|
+ "常见点表类型映射: BOOL=>bool, FLOAT/REAL=>float32, SHORT/INT=>int16, WORD=>uint16, "
|
|
|
|
|
+ "DWORD=>uint32, DINT/LONG=>int32, DOUBLE/LREAL=>float64。"
|
|
|
"S7 地址格式:I/Q/M/V 布尔点通常为 byte.bit,如 10.2;DB 布尔点为 db.byte.bit,"
|
|
"S7 地址格式:I/Q/M/V 布尔点通常为 byte.bit,如 10.2;DB 布尔点为 db.byte.bit,"
|
|
|
"如 1.10.2;非布尔点 I/Q/M/V 通常为 byte 地址,如 10,DB 为 db.byte,如 1.10。"
|
|
"如 1.10.2;非布尔点 I/Q/M/V 通常为 byte 地址,如 10,DB 为 db.byte,如 1.10。"
|
|
|
|
|
+ "注意本工具是汇采创建格式,不是网关读取格式;不要传 area/start/bit。"
|
|
|
|
|
+ "从常见 CSV 区域转换时:I=>register_area I;Q/QD=>Q;M/MD=>M;VD/VW=>V;"
|
|
|
|
|
+ "DB/DBD/DBW/DBX=>DB。BOOL 点把地址列和位地址列合并为 address='byte.bit';"
|
|
|
|
|
+ "DB BOOL 合并为 address='db.byte.bit';非 BOOL 使用字节地址,DB 非 BOOL 使用 'db.byte'。"
|
|
|
"响应透传上游 JSON,state=0 表示业务成功。"
|
|
"响应透传上游 JSON,state=0 表示业务成功。"
|
|
|
),
|
|
),
|
|
|
)
|
|
)
|