| | |
| | | using System; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Entity.DomainModels; |
| | |
| | | /// <exception cref="Exception"></exception> |
| | | public static object Read(dt_plcinfodetail detail, PLCClient client) |
| | | { |
| | | |
| | | if (detail.plcdetail_valtype == typeof(int).Name.ToLower())//4åè,æç¬¦å·ç±»å |
| | | |
| | | if (detail.plcdetail_valtype == typeof(int).Name.ToLower())//4åè,æç¬¦å·ç±»å |
| | | { |
| | | return (client.Read<int>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(uint).Name.ToLower())//4åè,æ 符å·ç±»å |
| | | { |
| | | return (client.Read<uint>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(short).Name.ToLower())//2åè,æç¬¦å·ç±»å,æå¸¸ç¨ |
| | | { |
| | | return (client.Read<short>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(ushort).Name.ToLower())//2åè,æ 符å·ç±»å |
| | | { |
| | | return (client.Read<ushort>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(float).Name.ToLower())//æµ®ç¹å |
| | | { |
| | | return (client.Read<float>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(bool).Name.ToLower()) |
| | | { |
| | | return (client.Read<bool>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(byte).Name.ToLower())//åè |
| | | { |
| | | return (client.Read<byte>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(string).Name.ToLower())//å符串 |
| | | { |
| | | return (client.Read<string>(detail.plcdetail_db + "." + detail.plcdetail_value, detail.plcdetail_len.GetValueOrDefault())); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"ã{detail.plcdetail_remark}ã,DBå°å{detail.plcdetail_db + "." + detail.plcdetail_value},æªå®ä¹æ°æ®ç±»å{detail.plcdetail_valtype}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="detail"></param> |
| | | /// <param name="client"></param> |
| | | /// <param name="value"></param> |
| | | /// <returns></returns> |
| | | public static object Read(DBItemGroup itemGroup, PLCClient client) |
| | | { |
| | | //PLCClient client = PLCClient.Clients.Where(x => x.PLCName == itemGroup.name).FirstOrDefault(); |
| | | if (client == null) |
| | | { |
| | | throw new Exception($"æªæ¾å°{itemGroup.name}è¿æ¥å¯¹è±¡"); |
| | | } |
| | | else |
| | | { |
| | | if (itemGroup.dataType == typeof(int).Name.ToLower())//4åè,æç¬¦å·ç±»å |
| | | { |
| | | return (client.Read<int>(detail.plcdetail_db+"."+detail.plcdetail_value)); |
| | | return (client.Read<int>(itemGroup.dbAddress)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(uint).Name.ToLower())//4åè,æ 符å·ç±»å |
| | | else if (itemGroup.dataType == typeof(uint).Name.ToLower())//4åè,æ 符å·ç±»å |
| | | { |
| | | return (client.Read<uint>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | return (client.Read<uint>(itemGroup.dbAddress)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(short).Name.ToLower())//2åè,æç¬¦å·ç±»å,æå¸¸ç¨ |
| | | else if (itemGroup.dataType == typeof(short).Name.ToLower())//2åè,æç¬¦å·ç±»å,æå¸¸ç¨ |
| | | { |
| | | return (client.Read<short>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | return (client.Read<short>(itemGroup.dbAddress)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(ushort).Name.ToLower())//2åè,æ 符å·ç±»å |
| | | else if (itemGroup.dataType == typeof(ushort).Name.ToLower())//2åè,æ 符å·ç±»å |
| | | { |
| | | return (client.Read<ushort>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | return (client.Read<ushort>(itemGroup.dbAddress)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(float).Name.ToLower())//æµ®ç¹å |
| | | else if (itemGroup.dataType == typeof(float).Name.ToLower())//æµ®ç¹å |
| | | { |
| | | return (client.Read<float>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | return (client.Read<float>(itemGroup.dbAddress)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(bool).Name.ToLower()) |
| | | else if (itemGroup.dataType == typeof(bool).Name.ToLower()) |
| | | { |
| | | return (client.Read<bool>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | return (client.Read<bool>(itemGroup.dbAddress)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(byte).Name.ToLower())//åè |
| | | else if (itemGroup.dataType == typeof(byte).Name.ToLower())//åè |
| | | { |
| | | return (client.Read<byte>(detail.plcdetail_db + "." + detail.plcdetail_value)); |
| | | return (client.Read<byte>(itemGroup.dbAddress)); |
| | | } |
| | | else if (detail.plcdetail_valtype == typeof(string).Name.ToLower())//å符串 |
| | | else if (itemGroup.dataType == typeof(string).Name.ToLower())//å符串 |
| | | { |
| | | return (client.Read<string>(detail.plcdetail_db + "." + detail.plcdetail_value, detail.plcdetail_len.GetValueOrDefault())); |
| | | return (client.Read<string>(itemGroup.dbAddress, itemGroup.dataLen.GetValueOrDefault())); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"ã{detail.plcdetail_remark}ã,DBå°å{detail.plcdetail_db + "." + detail.plcdetail_value},æªå®ä¹æ°æ®ç±»å{detail.plcdetail_valtype}"); |
| | | throw new Exception($"ã{itemGroup.name}ã,DBå°å{itemGroup.dbAddress},æªå®ä¹æ°æ®ç±»å{itemGroup.dataType}"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |