using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using MECF.Framework.RT.Core.IoProviders.Siemens.IMessage;
using MECF.Framework.RT.Core.IoProviders.Siemens.Net.NetworkBase;
using MECF.Framework.RT.Core.IoProviders.Siemens.Transfer;
/********************************************************************************
 * 
 *    说明:西门子通讯类,使用Fetch/Write消息解析规格,和反字节转换规格来实现的
 *    
 *    继承自统一的自定义方法,需要在PLC端进行相关的数据配置
 * 
 * 
 *********************************************************************************/
namespace MECF.Framework.RT.Core.IoProviders.Siemens
{
    /// 
    /// 使用了Fetch/Write协议来和西门子进行通讯,该种方法需要在PLC侧进行一些配置 ->
    /// Using the Fetch/write protocol to communicate with Siemens, this method requires some configuration on the PLC side
    /// 
    /// 
    /// 与S7协议相比较而言,本协议不支持对单个的点位的读写操作。如果读取M100.0,需要读取M100的值,然后进行提取位数据
    /// 地址支持的列表如下:
    /// 
    ///   
    ///     地址名称
    ///     地址代号
    ///     示例
    ///     地址进制
    ///     字操作
    ///     位操作
    ///     备注
    ///   
    ///   - 
    ///     中间寄存器
    ///     M
    ///     M100,M200
    ///     10
    ///     √
    ///     ×
    ///     
    ///   ///
- 
    ///     输入寄存器
    ///     I
    ///     I100,I200
    ///     10
    ///     √
    ///     ×
    ///     
    ///   ///
- 
    ///     输出寄存器
    ///     Q
    ///     Q100,Q200
    ///     10
    ///     √
    ///     ×
    ///     
    ///   ///
- 
    ///     DB块寄存器
    ///     DB
    ///     DB1.100,DB1.200
    ///     10
    ///     √
    ///     ×
    ///     
    ///   ///
- 
    ///     定时器的值
    ///     T
    ///     T100,T200
    ///     10
    ///     √
    ///     ×
    ///     
    ///   ///
- 
    ///     计数器的值
    ///     C
    ///     C100,C200
    ///     10
    ///     √
    ///     ×
    ///     
    ///   ///
/// 
    /// 
    ///