Esempio n. 1
0
        /// <summary>
        ///     构造函数
        /// </summary>
        /// <param name="connectionType">连接类型</param>
        /// <param name="connectionString">连接字符串</param>
        /// <param name="model">设备类型</param>
        /// <param name="slaveAddress">从站地址</param>
        /// <param name="masterAddress">主站地址</param>
        public SiemensUtility(SiemensType connectionType, string connectionString, SiemensMachineModel model,
                              byte slaveAddress, byte masterAddress) : base(slaveAddress, masterAddress)
        {
            ConnectionString = connectionString;
            switch (model)
            {
            case SiemensMachineModel.S7_200:
            {
                _tdpuSize   = 0x09;
                _taspSrc    = 0x1001;
                _tsapDst    = 0x1000;
                _maxCalling = 0x0001;
                _maxCalled  = 0x0001;
                _maxPdu     = 0x03c0;
                break;
            }

            case SiemensMachineModel.S7_300:
            case SiemensMachineModel.S7_400:
            {
                _tdpuSize   = 0x1a;
                _taspSrc    = 0x4b54;
                _tsapDst    = 0x0302;
                _maxCalling = 0x0001;
                _maxCalled  = 0x0001;
                _maxPdu     = 0x00f0;
                break;
            }

            case SiemensMachineModel.S7_1200:
            case SiemensMachineModel.S7_1500:
            {
                _tdpuSize   = 0x0a;
                _taspSrc    = 0x1011;
                _tsapDst    = 0x0301;
                _maxCalling = 0x0003;
                _maxCalled  = 0x0003;
                _maxPdu     = 0x0100;
                break;
            }

            case SiemensMachineModel.S7_200_Smart:
            {
                _tdpuSize   = 0x0a;
                _taspSrc    = 0x0101;
                _tsapDst    = 0x0101;
                _maxCalling = 0x0001;
                _maxCalled  = 0x0001;
                _maxPdu     = 0x03c0;
                break;
            }

            default:
            {
                throw new NotImplementedException("Siemens PLC Model not Supported");
            }
            }
            ConnectionType    = connectionType;
            AddressTranslator = new AddressTranslatorSiemens();
        }
Esempio n. 2
0
 public SiemensMachine(SiemensType connectionType, string connectionString, SiemensMachineModel model,
                       IEnumerable <AddressUnit> getAddresses, bool keepConnect) : base(getAddresses, keepConnect)
 {
     BaseUtility        = new SiemensUtility(connectionType, connectionString, model);
     AddressFormater    = new AddressFormaterSiemens();
     AddressCombiner    = new AddressCombinerContinus(AddressTranslator);
     AddressCombinerSet = new AddressCombinerContinus(AddressTranslator);
 }
Esempio n. 3
0
 /// <summary>
 ///     构造函数
 /// </summary>
 /// <param name="connectionType">连接类型</param>
 /// <param name="connectionString">连接地址</param>
 /// <param name="model">设备类型</param>
 /// <param name="getAddresses">读写的地址</param>
 /// <param name="keepConnect">是否保持连接</param>
 /// <param name="slaveAddress">从站号</param>
 /// <param name="masterAddress">主站号</param>
 public SiemensMachine(SiemensType connectionType, string connectionString, SiemensMachineModel model,
                       IEnumerable <AddressUnit <TUnitKey> > getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress)
     : base(getAddresses, keepConnect, slaveAddress, masterAddress)
 {
     BaseUtility        = new SiemensUtility(connectionType, connectionString, model, slaveAddress, masterAddress);
     AddressFormater    = new AddressFormaterSiemens();
     AddressCombiner    = new AddressCombinerContinus <TUnitKey>(AddressTranslator, 100);
     AddressCombinerSet = new AddressCombinerContinus <TUnitKey>(AddressTranslator, 100);
 }
Esempio n. 4
0
 public SiemensMachine(SiemensType connectionType, string connectionString, SiemensMachineModel model,
                       IEnumerable <AddressUnit> getAddresses)
     : this(connectionType, connectionString, model, getAddresses, false)
 {
 }
Esempio n. 5
0
 /// <summary>
 ///     构造函数
 /// </summary>
 /// <param name="connectionType">连接类型</param>
 /// <param name="connectionString">连接地址</param>
 /// <param name="model">设备类型</param>
 /// <param name="getAddresses">读写的地址</param>
 /// <param name="slaveAddress">从站号</param>
 /// <param name="masterAddress">主站号</param>
 public SiemensMachine(SiemensType connectionType, string connectionString, SiemensMachineModel model,
                       IEnumerable <AddressUnit <TUnitKey> > getAddresses, byte slaveAddress, byte masterAddress)
     : this(connectionType, connectionString, model, getAddresses, false, slaveAddress, masterAddress)
 {
 }