434 lines
13 KiB
Markdown
434 lines
13 KiB
Markdown
# S7 模块文档 (Python 版本)
|
||
|
||
## S7
|
||
|
||
#### S7 读取 Int
|
||
|
||
* 方法说明
|
||
|
||
S7 读取 Int。
|
||
|
||
```python
|
||
def read_s7_int(plc_type: str, ip: str, block_and_offset: str) -> Optional[int]:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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。
|
||
|
||
```python
|
||
def read_s7_dint(plc_type: str, ip: str, block_and_offset: str) -> Optional[int]:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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。
|
||
|
||
```python
|
||
def read_s7_word(plc_type: str, ip: str, block_and_offset: str) -> Optional[int]:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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。
|
||
|
||
```python
|
||
def read_s7_dword(plc_type: str, ip: str, block_and_offset: str) -> Optional[int]:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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。
|
||
|
||
```python
|
||
def read_s7_string(plc_type: str, ip: str, block_and_offset: str) -> Optional[str]:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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。
|
||
|
||
```python
|
||
def read_s7_boolean(plc_type: str, ip: str, block_and_offset: str) -> Optional[bool]:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,读取的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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。
|
||
|
||
```python
|
||
def write_s7_int(plc_type: str, ip: str, block_and_offset: str, value: int) -> bool:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,写入的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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 |
|
||
* `value`,int 类型,写入的值。
|
||
* 输出参数
|
||
* 成功返回 `True`,失败返回 `False`。
|
||
* 异常
|
||
本方法不抛出异常,异常捕获后只作日志记录。
|
||
|
||
#### S7 写入 DInt
|
||
|
||
* 方法说明
|
||
|
||
S7 写入 DInt。
|
||
|
||
```python
|
||
def write_s7_dint(plc_type: str, ip: str, block_and_offset: str, value: int) -> bool:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,写入的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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 |
|
||
* `value`,int 类型,写入的值。
|
||
* 输出参数
|
||
* 成功返回 `True`,失败返回 `False`。
|
||
* 异常
|
||
本方法不抛出异常,异常捕获后只作日志记录。
|
||
|
||
#### S7 写入 Word
|
||
|
||
* 方法说明
|
||
|
||
S7 写入 Word。
|
||
|
||
```python
|
||
def write_s7_word(plc_type: str, ip: str, block_and_offset: str, value: int) -> bool:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,写入的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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 |
|
||
* `value`,int 类型,写入的值。
|
||
* 输出参数
|
||
* 成功返回 `True`,失败返回 `False`。
|
||
* 异常
|
||
本方法不抛出异常,异常捕获后只作日志记录。
|
||
|
||
#### S7 写入 DWord
|
||
|
||
* 方法说明
|
||
|
||
S7 写入 DWord。
|
||
|
||
```python
|
||
def write_s7_dword(plc_type: str, ip: str, block_and_offset: str, value: int) -> bool:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,写入的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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 |
|
||
* `value`,int 类型,写入的值。
|
||
* 输出参数
|
||
* 成功返回 `True`,失败返回 `False`。
|
||
* 异常
|
||
本方法不抛出异常,异常捕获后只作日志记录。
|
||
|
||
#### S7 写入 String
|
||
|
||
* 方法说明
|
||
|
||
S7 写入 String。
|
||
|
||
```python
|
||
def write_s7_string(plc_type: str, ip: str, block_and_offset: str, value: str) -> bool:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,写入的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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 |
|
||
* `value`,str 类型,写入的值。
|
||
* 输出参数
|
||
* 成功返回 `True`,失败返回 `False`。
|
||
* 异常
|
||
本方法不抛出异常,异常捕获后只作日志记录。
|
||
|
||
#### S7 写入 Bool
|
||
|
||
* 方法说明
|
||
|
||
S7 写入 Bool。
|
||
|
||
```python
|
||
def write_s7_boolean(plc_type: str, ip: str, block_and_offset: str, value: bool) -> bool:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`,str 类型,PLC 类型,可选值(区分大小写):S1200/S300/S400/S1500/S200Smart/S200。
|
||
* `ip`,str 类型,PLC IP。
|
||
* `block_and_offset`,str 类型,写入的地址,支持的区域取值示例如下(区分大小写):
|
||
|
||
| 地址名称 | 地址代号 | 示例 |
|
||
| --- | --- | --- |
|
||
| 中间寄存器 | 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 |
|
||
* `value`,bool 类型,写入的值。
|
||
* 输出参数
|
||
* 成功返回 `True`,失败返回 `False`。
|
||
* 异常
|
||
本方法不抛出异常,异常捕获后只作日志记录。
|
||
|
||
#### S7 通用写入
|
||
|
||
* 方法说明
|
||
|
||
S7 写入 Int、DInt、Word、DWord、String、Bool。
|
||
|
||
```python
|
||
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`:同上
|
||
* `slot`:CPU 模块的插槽号
|
||
* `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 类型地址的值。
|
||
|
||
```python
|
||
def read_s7(plc_type: str, ip: str, slot: int, rack: int, data_type: str, block_and_offset: str) -> Any:
|
||
```
|
||
|
||
* 输入参数
|
||
* `plc_type`:同上
|
||
* `ip`:同上
|
||
* `slot`:CPU 模块的插槽号
|
||
* `rack`:中央机架
|
||
* `data_type`:在 Int、DInt、Word、DWord、String、Bool 中可选
|
||
* `block_and_offset`:同上
|
||
* 输出参数
|
||
* `None`,读取失败。
|
||
* `Any`,读取成功的返回值。
|
||
* 异常
|
||
本方法不抛出异常,异常捕获后只作日志记录。
|