#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),
|
};
|
}
|
}
|
}
|