Skip to content

6 Modbus.Net.Siemens

OpenClaw edited this page May 25, 2026 · 7 revisions
classDiagram
    class SiemensMachine~TKey,TUnitKey~ {
        +AddressFormater: AddressFormaterSiemens
        +AddressCombiner: AddressCombinerContinus
        +SiemensMachine(id, alias, type, connectionString, model, addresses, ...)
    }
    class SiemensUtility {
        +Endian: Endian (BigEndianLsb)
        +GetDatasAsync(startAddress, count, originalCount)
        +SetDatasAsync(startAddress, contents, originalCount)
        -wrapper: SiemensProtocol
    }
    class SiemensProtocol {
        <<abstract>>
        +ConnectAsync() Task~bool~
    }
    class SiemensTcpProtocol {
        +CreateReference()
        +EstablishAssociation()
    }
    class SiemensPpiProtocol
    class SiemensController
    class SiemensTcpController
    class SiemensPpiController
    class SiemensMachineModel {
        <<enum>>
        S7_200
        S7_200_Smart
        S7_300
        S7_400
        S7_1200
        S7_1500
    }

    BaseMachine <|-- SiemensMachine
    BaseUtility <|-- SiemensUtility
    SiemensMachine --> SiemensUtility
    SiemensMachine --> SiemensMachineModel
    SiemensUtility --> SiemensProtocol
    SiemensProtocol <|-- SiemensTcpProtocol
    SiemensProtocol <|-- SiemensPpiProtocol
    SiemensController <|-- SiemensTcpController
    SiemensController <|-- SiemensPpiController
Loading

基本概念

西门子通讯协议是西门子根据Profibus和Profinet协议修改得到的,包括PPI,MPI和以太网协议。

地址描述

Modbus.Net.Siemens 有两种描述地址的方法,Modbus.Net方法和西门子标准方法。

但是Modbus.Net的AddressUnit或Utility的参数里面已经有一个Datatype字段来描述地址类型,所以无论是Modbus.Net方法还是标准方法请把描述地址类型的字母删除。

下表说明了它们之间的区别。

标准西门子地址 Modbus.Net方法 西门子标准方法
I0.0 I 0.0 I0.0
IB0 I 0 I0
V10.5 V 10.5 V10.5
VB19 V 19 V19
DB1.DBD22 DB1 22 DB1.DB22
DB2.DB35.1 DB2 35.1 DB2.DB35.1

地址的编码方法

Modbus.Net.Siemens的地址编码方法与标准西门子地址完全一致。

子地址

Modbus.Net.Siemens的子地址与标准西门子地址完全一致。

放大倍数永远为1。

Home

中文

English

Clone this wiki locally