VWED_server/docs/sc/S7相关.md

13 KiB
Raw Blame History

S7 模块文档 (Python 版本)

S7

S7 读取 Int

  • 方法说明

    S7 读取 Int。

def read_s7_int(plc_type: str, ip: str, block_and_offset: str) -> Optional[int]:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,读取的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • 输出参数
  • None,读取失败。
  • int,读取成功的返回值。
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 读取 DInt

  • 方法说明

    S7 读取 DInt。

def read_s7_dint(plc_type: str, ip: str, block_and_offset: str) -> Optional[int]:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,读取的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • 输出参数
  • None,读取失败。
  • int,读取成功的返回值。
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 读取 Word

  • 方法说明

    S7 读取 Word。

def read_s7_word(plc_type: str, ip: str, block_and_offset: str) -> Optional[int]:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,读取的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • 输出参数
  • None,读取失败。
  • int,读取成功的返回值。
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 读取 DWord

  • 方法说明

    S7 读取 DWord。

def read_s7_dword(plc_type: str, ip: str, block_and_offset: str) -> Optional[int]:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,读取的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • 输出参数
  • None,读取失败。
  • int,读取成功的返回值。
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 读取 String

  • 方法说明

    S7 读取 String。

def read_s7_string(plc_type: str, ip: str, block_and_offset: str) -> Optional[str]:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,读取的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • 输出参数
  • None,读取失败。
  • str,读取成功的返回值。
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 读取 Bool

  • 方法说明

    S7 读取 Bool。

def read_s7_boolean(plc_type: str, ip: str, block_and_offset: str) -> Optional[bool]:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,读取的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • 输出参数
  • None,读取失败。
  • bool,读取成功的返回值。
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 写入 Int

  • 方法说明

    S7 写入 Int。

def write_s7_int(plc_type: str, ip: str, block_and_offset: str, value: int) -> bool:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,写入的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • valueint 类型,写入的值。
  • 输出参数
  • 成功返回 True,失败返回 False
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 写入 DInt

  • 方法说明

    S7 写入 DInt。

def write_s7_dint(plc_type: str, ip: str, block_and_offset: str, value: int) -> bool:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,写入的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • valueint 类型,写入的值。
  • 输出参数
  • 成功返回 True,失败返回 False
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 写入 Word

  • 方法说明

    S7 写入 Word。

def write_s7_word(plc_type: str, ip: str, block_and_offset: str, value: int) -> bool:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,写入的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • valueint 类型,写入的值。
  • 输出参数
  • 成功返回 True,失败返回 False
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 写入 DWord

  • 方法说明

    S7 写入 DWord。

def write_s7_dword(plc_type: str, ip: str, block_and_offset: str, value: int) -> bool:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,写入的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • valueint 类型,写入的值。
  • 输出参数
  • 成功返回 True,失败返回 False
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 写入 String

  • 方法说明

    S7 写入 String。

def write_s7_string(plc_type: str, ip: str, block_and_offset: str, value: str) -> bool:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,写入的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • valuestr 类型,写入的值。
  • 输出参数
  • 成功返回 True,失败返回 False
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 写入 Bool

  • 方法说明

    S7 写入 Bool。

def write_s7_boolean(plc_type: str, ip: str, block_and_offset: str, value: bool) -> bool:
  • 输入参数
  • plc_typestr 类型PLC 类型可选值区分大小写S1200/S300/S400/S1500/S200Smart/S200。
  • ipstr 类型PLC IP。
  • block_and_offsetstr 类型,写入的地址,支持的区域取值示例如下(区分大小写):
    地址名称 地址代号 示例
    中间寄存器 M M100,M200
    输入寄存器 I I100,I200
    输出寄存器 Q Q100,Q200
    DB块寄存器 DB DB1.100,DB1.200.7
    V寄存器 V V100,V200
    定时器的值 T T100,T200
    计数器的值 C C100,C200
    智能输入寄存器 AI AI100,AI200
    智能输出寄存器 AQ AQ100,AQ200
  • valuebool 类型,写入的值。
  • 输出参数
  • 成功返回 True,失败返回 False
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 通用写入

  • 方法说明

    S7 写入 Int、DInt、Word、DWord、String、Bool。

def write_s7(plc_type: str, ip: str, slot: int, rack: int, data_type: str, block_and_offset: str, value: Any) -> bool:
  • 输入参数
  • plc_type:同上
  • ip:同上
  • slotCPU 模块的插槽号
  • rack:中央机架
  • data_type:在 Int、DInt、Word、DWord、String、Bool 中可选
  • block_and_offset:同上
  • value: 与 data_type 类型匹配的值
  • 输出参数
  • 成功返回 True,失败返回 False
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。

S7 通用读取

  • 方法说明

    S7 读取 Int、DInt、Word、DWord、String、Bool 类型地址的值。

def read_s7(plc_type: str, ip: str, slot: int, rack: int, data_type: str, block_and_offset: str) -> Any:
  • 输入参数
  • plc_type:同上
  • ip:同上
  • slotCPU 模块的插槽号
  • rack:中央机架
  • data_type:在 Int、DInt、Word、DWord、String、Bool 中可选
  • block_and_offset:同上
  • 输出参数
  • None,读取失败。
  • Any,读取成功的返回值。
  • 异常 本方法不抛出异常,异常捕获后只作日志记录。