#region << 版 本 注 释 >> 
 | 
/*---------------------------------------------------------------- 
 | 
 * 命名空间:WIDESEAWCS_Communicator 
 | 
 * 创建者:胡童庆 
 | 
 * 创建时间:2024/8/2 16:13:36 
 | 
 * 版本:V1.0.0 
 | 
 * 描述:西门子PLC的数据类型 
 | 
 * 
 | 
 * ---------------------------------------------------------------- 
 | 
 * 修改人: 
 | 
 * 修改时间: 
 | 
 * 版本:V1.0.1 
 | 
 * 修改说明: 
 | 
 *  
 | 
 *----------------------------------------------------------------*/ 
 | 
#endregion << 版 本 注 释 >> 
 | 
  
 | 
using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Linq; 
 | 
using System.Net; 
 | 
using System.Text; 
 | 
using System.Threading.Tasks; 
 | 
  
 | 
namespace WIDESEAWCS_Communicator 
 | 
{ 
 | 
    /// <summary> 
 | 
    /// 西门子PLC的数据类型 
 | 
    /// </summary> 
 | 
    public class SiemensDBDataType 
 | 
    { 
 | 
        #region <Const> 
 | 
        /// <summary> 
 | 
        /// 32位有符号整型 
 | 
        /// </summary> 
 | 
        public const string DataType_DInt = "dint"; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 布尔 
 | 
        /// </summary> 
 | 
        public const string DataType_Bool = "bool"; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 字符串 
 | 
        /// </summary> 
 | 
        public const string DataType_String = "string"; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 16位有符号整型 
 | 
        /// </summary> 
 | 
        public const string DataType_Int = "int"; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 字节 
 | 
        /// </summary> 
 | 
        public const string DataType_Byte = "byte"; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 32位无符号整型 
 | 
        /// </summary> 
 | 
        public const string DataType_DW = "dw"; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 16位无符号整型 
 | 
        /// </summary> 
 | 
        public const string DataType_W = "w"; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 浮点型 
 | 
        /// </summary> 
 | 
        public const string DataType_Float = "float"; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 字符 
 | 
        /// </summary> 
 | 
        public const string DataType_Char = "char"; 
 | 
        #endregion <Const> 
 | 
  
 | 
        /// <summary> 
 | 
        /// 根据西门子PLC的数据类型获取对应C#的类型编号枚举 
 | 
        /// </summary> 
 | 
        /// <param name="dataType">西门子PLC的数据类型</param> 
 | 
        /// <returns>返回对应C#的类型编号枚举</returns> 
 | 
        /// <exception cref="CommunicationException"></exception> 
 | 
        public static TypeCode GetTypeCode(string dataType) 
 | 
        { 
 | 
            return dataType.ToLower() switch 
 | 
            { 
 | 
                DataType_DInt => TypeCode.Int32, 
 | 
                DataType_DW => TypeCode.UInt32, 
 | 
                DataType_Int => TypeCode.Int16, 
 | 
                DataType_W => TypeCode.UInt16, 
 | 
                DataType_Float => TypeCode.Single, 
 | 
                DataType_Bool => TypeCode.Boolean, 
 | 
                DataType_Byte => TypeCode.Byte, 
 | 
                DataType_String => TypeCode.String, 
 | 
                DataType_Char => TypeCode.Char, 
 | 
                _ => throw new CommunicationException($"数据类型错误:【{dataType}】", CommunicationErrorType.TypeError), 
 | 
            }; 
 | 
        } 
 | 
    } 
 | 
} 
 |