```markdown ## OPC-UA #### OPC 读取数值 * 方法说明 读取 OPC server 中的某个地址位的值。 ```python def read_opc_value(address: str | int) -> any: ``` * 输入参数 * `address`:str 类型,读取的地址位。 * 输出参数 * 读到的值。 * 异常 读取失败会抛出 `RuntimeError` 异常 "read_opc_value error"。 * 方法说明 ```python def read_opc_value(namespace_index: int, address: str | int) -> any: ``` * 输入参数 * `namespace_index`:int 类型,命名空间索引 * `address`:str 类型,读取的地址位。地址类型 g=550e8400-e29b-41d4-a716-446655440000: g= 表示地址类型是 UUID;i=1008: i= 表示地址类型是 number;b=EAk=: b= 表示地址类型是 Opaque;s=1009: s= 表示地址类型是字符串 * 输出参数 * 读到的值。 * 异常 读取失败会抛出 `RuntimeError` 异常 "read_opc_value error"。 #### OPC 订阅方式读取数值 * 方法说明 通过订阅的方式,读取 OPC server 中的某个地址位的值。 ```python def read_opc_value_by_subscription(namespace_index: int, address: str) -> any: ``` * 输入参数 * `namespace_index`:int 类型,命名空间索引。 * `address`:str 类型,读取的地址位。地址类型 g=550e8400-e29b-41d4-a716-446655440000: g= 表示地址类型是 UUID;i=1008: i= 表示地址类型是 number;b=EAk=: b= 表示地址类型是 Opaque;s=1009: s= 表示地址类型是字符串 * 输出参数 * 读到的值。 * 异常 读取失败会抛出 `RuntimeError` 异常 "read_opc_value error"。 #### OPC 写入数值 * 方法说明 向 OPC server 中的某个地址位写入值。 ```python def write_opc_value(address: str | int, value: any) -> bool: ``` * 输入参数 * `address`:str 类型,表示写入的地址。 * `value`:any 类型,写入的值。 * 输出参数 成功返回 `True`,失败返回 `False`。 * 异常 本方法不抛出异常。 * 方法说明 向 OPC server 中的某个地址位写入值。 ```python def write_opc_value(namespace_index: int, address: str | int, value: any) -> bool: ``` * 输入参数 * `namespace_index`:int 类型,命名空间索引 * `address`:str 类型,表示写入的地址。地址类型 g=550e8400-e29b-41d4-a716-446655440000: g= 表示地址类型是 UUID;i=1008: i= 表示地址类型是 number;b=EAk=: b= 表示地址类型是 Opaque;s=1009: s= 表示地址类型是字符串 * `value`:any 类型,写入的值。 * 输出参数 成功返回 `True`,失败返回 `False`。 * 异常 本方法不抛出异常。 ```