diff --git a/Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs b/Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs
index 4188e44..eb8bbf6 100644
--- a/Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs
+++ b/Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs
@@ -79,10 +79,11 @@ namespace Modbus.Net.Siemens
/// 设备类型
/// 从站地址
/// 主站地址
- /// 本机模块位,0到7,仅200使用,其它型号不要填写
- /// PLC模块位,0到7,仅200使用,其它型号不要填写
+ /// 本机模块位,0到7,200为本地栈号,比如10.01则填写0x01
+ /// PLC模块位,0到7,200为远程栈号,比如10.02则填写0x02
+ /// 300和400为槽号机架号,机架号为1,比如槽号为3,则填写0x13
public SiemensUtility(SiemensType connectionType, string connectionString, SiemensMachineModel model,
- byte slaveAddress, byte masterAddress, byte src = 1, byte dst = 0) : base(slaveAddress, masterAddress)
+ byte slaveAddress, byte masterAddress, byte src = 0, byte dst = 1) : base(slaveAddress, masterAddress)
{
ConnectionString = connectionString;
switch (model)
@@ -102,7 +103,7 @@ namespace Modbus.Net.Siemens
{
_tdpuSize = 0x1a;
_taspSrc = 0x4b54;
- _tsapDst = 0x0302;
+ _tsapDst = (ushort)(0x0300 + dst);
_maxCalling = 0x0001;
_maxCalled = 0x0001;
_maxPdu = 0x00f0;
@@ -113,8 +114,8 @@ namespace Modbus.Net.Siemens
{
_tdpuSize = 0x0a;
_taspSrc = 0x1011;
- _tsapDst = 0x0301;
- _maxCalling = 0x0003;
+ _tsapDst = (ushort)(0x0300 + dst);
+ _maxCalling = 0x0003;
_maxCalled = 0x0003;
_maxPdu = 0x0100;
break;