From 5d523171b8bc7db46ca76b11640dbfcb0120ce84 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 02 10月 2024 09:55:24 +0800 Subject: [PATCH] 2 --- SDA/iWareModel/EnumType/EDevice/Rgv/EStationState.cs | 17 SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDBForWrite.cs | 121 ++ SDA/iWareModel/EnumType/EDevice/Rgv/EStationMode.cs | 16 SDA/iWareSda/Devices/4-Station/StationService/StationService.cs | 576 ++++++++++++ SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDB2Obj.cs | 213 ++++ SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs | 138 +++ SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs | 779 ++++++++++++++++ SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs | 385 ++++++++ SDA/iWareSda/Devices/4-Station/StationModel/StationView.cs | 43 SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs | 314 ++++++ SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDBForRead.cs | 106 ++ 11 files changed, 2,708 insertions(+), 0 deletions(-) diff --git a/SDA/iWareModel/EnumType/EDevice/Rgv/EStationMode.cs b/SDA/iWareModel/EnumType/EDevice/Rgv/EStationMode.cs new file mode 100644 index 0000000..a6092bc --- /dev/null +++ b/SDA/iWareModel/EnumType/EDevice/Rgv/EStationMode.cs @@ -0,0 +1,16 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareModel +{ + public enum EStationMode + { + 鍏虫満妯″紡 = 0, + 鎵嬪姩妯″紡 = 1, + 鑷姩寰呮満妯″紡 = 2, + 鑷姩杩愯妯″紡 = 3, + } +} diff --git a/SDA/iWareModel/EnumType/EDevice/Rgv/EStationState.cs b/SDA/iWareModel/EnumType/EDevice/Rgv/EStationState.cs new file mode 100644 index 0000000..a982b90 --- /dev/null +++ b/SDA/iWareModel/EnumType/EDevice/Rgv/EStationState.cs @@ -0,0 +1,17 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareModel +{ + public enum EStationState + { + //绌洪棽 = 0, + //浠诲姟涓� = 1, + //[EditBy shaocx,2022-05-11] + 浠诲姟涓� = 0, + 绌洪棽 = 1 + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs new file mode 100644 index 0000000..102bea2 --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs @@ -0,0 +1,385 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareSda.Devices._3_Station.StationModel +{ + + #region 鍐� + + public class StationDB2ObjForWriteComm + { + /// <summary> + /// 绔欑偣缂栧彿 + /// </summary> + [Description("绔欑偣缂栧彿")] + public string StationCode { get; set; } + + /// <summary> + /// 璇荤爜鏁版嵁瑙f瀽瀹屾垚 + /// </summary> + [Description("璇荤爜鏁版嵁瑙f瀽瀹屾垚")] + public bool W_DataFinish { get; set; } + + /// <summary> + /// 榻愬淇℃伅锛�998榻愬锛�999寮傚父鍑哄簱锛� + /// </summary> + [Description("榻愬淇℃伅锛�998榻愬锛�999寮傚父鍑哄簱锛�")] + public string W_KittingInfo { get; set; } + + /// <summary> + /// 鍒嗛厤鏀炬枡搴撲綅鍙� + /// </summary> + [Description("鍒嗛厤鏀炬枡搴撲綅鍙�")] + public string W_Destination_In { get; set; } + + /// <summary> + /// 浠诲姟鍙� + /// </summary> + [Description("浠诲姟鍙�")] + public string W_TaskID { get; set; } + + + /// <summary> + /// 鏉ユ枡闀垮害 + /// </summary> + [Description("鏉ユ枡闀垮害")] + public string W_Length { get; set; } + + /// <summary> + /// 鏉ユ枡瀹藉害 + /// </summary> + [Description("鏉ユ枡瀹藉害")] + public string W_Width { get; set; } + + + /// <summary> + /// 鏉ユ枡楂樺害 + /// </summary> + [Description("鏉ユ枡楂樺害")] + public string W_Height { get; set; } + + /// <summary> + /// 璇锋眰鍑哄簱 + /// </summary> + [Description("璇锋眰鍑哄簱")] + public bool W_ReqOut { get; set; } + + /// <summary> + /// 鍒嗛厤鍑哄簱搴撲綅鍙� + /// </summary> + [Description("鍒嗛厤鍑哄簱搴撲綅鍙�")] + public string W_Destination_Out { get; set; } + + /// <summary> + /// 鏄惁鏃嬭浆 + /// </summary> + [Description("鏄惁鏃嬭浆")] + public bool W_IsRotate { get; set; } + + + + /// <summary> + /// 鍖呬欢闀� + /// </summary> + [Description("鍖呬欢闀�")] + public string W_PackageLength { get; set; } + + /// <summary> + /// 鍖呬欢瀹� + /// </summary> + [Description("鍖呬欢瀹�")] + public string W_PackageWidth { get; set; } + + + /// <summary> + /// 绾哥楂� + /// </summary> + [Description("绾哥楂�")] + public string W_CartonHeight { get; set; } + + /// <summary> + /// 绾哥瀹� + /// </summary> + [Description("绾哥瀹�")] + public string W_CartonWidth { get; set; } + + /// <summary> + /// 鏀炬枡X鍋忕Щ + /// </summary> + [Description("鏀炬枡X鍋忕Щ")] + public string W_X_Offset { get; set; } + + /// <summary> + /// 鏀炬枡Y鍋忕Щ + /// </summary> + [Description("鏀炬枡Y鍋忕Щ")] + public string W_Y_Offset { get; set; } + } + + /// <summary> + /// 姣忎釜绔欑偣鐨勫啓鏁版嵁 + /// </summary> + public class StationDBForWriteComm + { + /// <summary> + /// 绔欑偣缂栧彿 + /// </summary> + [Description("绔欑偣缂栧彿")] + public string StationCode { get; set; } + + /// <summary> + /// 璇荤爜鏁版嵁瑙f瀽瀹屾垚 + /// </summary> + [Description("璇荤爜鏁版嵁瑙f瀽瀹屾垚")] + public string W_DataFinish { get; set; } + + /// <summary> + /// 榻愬淇℃伅锛�998榻愬锛�999寮傚父鍑哄簱锛� + /// </summary> + [Description("榻愬淇℃伅锛�998榻愬锛�999寮傚父鍑哄簱锛�")] + public string W_KittingInfo { get; set; } + + /// <summary> + /// 鍒嗛厤鏀炬枡搴撲綅鍙� + /// </summary> + [Description("鍒嗛厤鏀炬枡搴撲綅鍙�")] + public string W_Destination_In { get; set; } + + /// <summary> + /// 浠诲姟鍙� + /// </summary> + [Description("浠诲姟鍙�")] + public string W_TaskID { get; set; } + + + /// <summary> + /// 鏉ユ枡闀垮害 + /// </summary> + [Description("鏉ユ枡闀垮害")] + public string W_Length { get; set; } + + /// <summary> + /// 鏉ユ枡瀹藉害 + /// </summary> + [Description("鏉ユ枡瀹藉害")] + public string W_Width { get; set; } + + + /// <summary> + /// 鏉ユ枡楂樺害 + /// </summary> + [Description("鏉ユ枡楂樺害")] + public string W_Height { get; set; } + + /// <summary> + /// 璇锋眰鍑哄簱 + /// </summary> + [Description("璇锋眰鍑哄簱")] + public string W_ReqOut { get; set; } + + /// <summary> + /// 鍒嗛厤鍑哄簱搴撲綅鍙� + /// </summary> + [Description("鍒嗛厤鍑哄簱搴撲綅鍙�")] + public string W_Destination_Out { get; set; } + + /// <summary> + /// 鏄惁鏃嬭浆 + /// </summary> + [Description("鏄惁鏃嬭浆")] + public string W_IsRotate { get; set; } + + + + /// <summary> + /// 鍖呬欢闀� + /// </summary> + [Description("鍖呬欢闀�")] + public string W_PackageLength { get; set; } + + /// <summary> + /// 鍖呬欢瀹� + /// </summary> + [Description("鍖呬欢瀹�")] + public string W_PackageWidth { get; set; } + + + /// <summary> + /// 绾哥楂� + /// </summary> + [Description("绾哥楂�")] + public string W_CartonHeight { get; set; } + + /// <summary> + /// 绾哥瀹� + /// </summary> + [Description("绾哥瀹�")] + public string W_CartonWidth { get; set; } + + /// <summary> + /// 鏀炬枡X鍋忕Щ + /// </summary> + [Description("鏀炬枡X鍋忕Щ")] + public string W_X_Offset { get; set; } + + /// <summary> + /// 鏀炬枡Y鍋忕Щ + /// </summary> + [Description("鏀炬枡Y鍋忕Щ")] + public string W_Y_Offset { get; set; } + + } + + #endregion + + /// <summary> + /// 姣忎釜绔欑偣鐨勮鏁版嵁 + /// </summary> + public class StationDB2ObjForReadComm + { + /// <summary> + /// 绔欑偣缂栧彿 + /// </summary> + [Description("绔欑偣缂栧彿")] + public string StationCode { get; set; } + + /// <summary> + /// 璇锋眰瑙f瀽璇荤爜鏁版嵁 + /// </summary> + [Description("璇锋眰瑙f瀽璇荤爜鏁版嵁")] + public bool R_ReqParseData { get; set; } + + /// <summary> + /// 璇荤爜鍣ㄨ鐮佺粨鏋� + /// </summary> + [Description("璇荤爜鍣ㄨ鐮佺粨鏋�")] + public String R_ReadCodeResult { get; set; } + + /// <summary> + /// 鏀跺埌浠诲姟涓嬪彂鍙嶉 + /// </summary> + [Description("鏀跺埌浠诲姟涓嬪彂鍙嶉")] + public bool R_ACK { get; set; } + + /// <summary> + /// 妯″紡 + /// </summary> + [Description("妯″紡")] + public short R_Model { get; set; } + + /// <summary> + /// 杩愯鐘舵�� + /// </summary> + [Description("杩愯鐘舵��")] + public short R_State { get; set; } + + /// <summary> + /// 鎶ヨ浠g爜 + /// </summary> + [Description("鎶ヨ浠g爜")] + public short R_AlarmCode { get; set; } + + /// <summary> + /// 鎶ヨ浠g爜鍐呭锛岄潪DB鍧楀唴瀹� + /// </summary> + [Description("鎶ヨ浠g爜鍐呭锛岄潪DB鍧楀唴瀹�")] + public string R_AlarmCodeMsg { get; set; } + + /// <summary> + /// 褰撳墠鐩爣鍦板潃 + /// </summary> + [Description("褰撳墠鐩爣鍦板潃")] + public short R_Destination { get; set; } + + /// <summary> + /// 璐у舰 + /// </summary> + [Description("璐у舰")] + public short R_Shape { get; set; } + + /// <summary> + /// 褰撳墠浠诲姟鍙� + /// </summary> + [Description("褰撳墠浠诲姟鍙�")] + public int R_TaskID { get; set; } + } + + public class StationDBForReadComm + { + /// <summary> + /// 绔欑偣缂栧彿 + /// </summary> + [Description("绔欑偣缂栧彿")] + public string StationCode { get; set; } + + /// <summary> + /// 璇锋眰瑙f瀽璇荤爜鏁版嵁 + /// </summary> + [Description("璇锋眰瑙f瀽璇荤爜鏁版嵁")] + public string R_ReqParseData { get; set; } + + /// <summary> + /// 璇荤爜鍣ㄨ鐮佺粨鏋� + /// </summary> + [Description("璇荤爜鍣ㄨ鐮佺粨鏋�")] + public String R_ReadCodeResult { get; set; } + + /// <summary> + /// 鍏夌數1鐘舵�� + /// </summary> + [Description("鍏夌數1鐘舵��")] + public string R_PH_1 { get; set; } + + /// <summary> + /// 鍏夌數2鐘舵�� + /// </summary> + [Description("鍏夌數2鐘舵��")] + public string R_PH_2 { get; set; } + + /// <summary> + /// 鏀跺埌浠诲姟涓嬪彂鍙嶉 + /// </summary> + [Description("鏀跺埌浠诲姟涓嬪彂鍙嶉")] + public string R_ACK { get; set; } + + /// <summary> + /// 妯″紡 + /// </summary> + [Description("妯″紡")] + public string R_Model { get; set; } + + /// <summary> + /// 杩愯鐘舵�� + /// </summary> + [Description("杩愯鐘舵��")] + public string R_State { get; set; } + + /// <summary> + /// 鎶ヨ浠g爜 + /// </summary> + [Description("鎶ヨ浠g爜")] + public string R_AlarmCode { get; set; } + + /// <summary> + /// 褰撳墠鐩爣鍦板潃 + /// </summary> + [Description("褰撳墠鐩爣鍦板潃")] + public string R_Destination { get; set; } + + /// <summary> + /// 澶栧舰妫�娴� + /// </summary> + [Description("澶栧舰妫�娴�")] + public string R_Shape { get; set; } + + /// <summary> + /// 褰撳墠浠诲姟鍙� + /// </summary> + [Description("褰撳墠浠诲姟鍙�")] + public string R_TaskID { get; set; } + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDB2Obj.cs b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDB2Obj.cs new file mode 100644 index 0000000..9b76bd8 --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDB2Obj.cs @@ -0,0 +1,213 @@ +锘� +using iWareSda.Devices._3_Station.StationModel; +using System.Collections.Generic; +using System.ComponentModel; +namespace iWareSda +{ + /// <summary> + /// Station灞曠ず瀹炰綋绫� + /// </summary> + public class StationDB2Obj + { + + #region 鍐欏叆鐨凷tation淇℃伅 + /// <summary> + /// 蹇冭烦 + /// </summary> + [Description("蹇冭烦")] + public bool W_HandShake { get; set; } + + /// <summary> + /// 1015閲嶆柊鎵爜锛屽啓涓簍rue琛ㄧず閲嶆柊鎵爜锛屽啓涓篺alse锛岃〃绀哄叧闂噸鏂版壂鐮併�傚綋wcs璇诲埌鍊煎悗锛屽氨鍐欎负false + /// </summary> + [Description("1015閲嶆柊鎵爜")] + public bool W_1015_ReScan { get; set; } + + /// <summary> + /// 1019閲嶆柊鎵爜锛屽啓涓簍rue琛ㄧず閲嶆柊鎵爜锛屽啓涓篺alse锛岃〃绀哄叧闂噸鏂版壂鐮併�傚綋wcs璇诲埌鍊煎悗锛屽氨鍐欎负false + /// </summary> + [Description("1019閲嶆柊鎵爜")] + public bool W_1019_ReScan { get; set; } + + /// <summary> + /// Station_瀹屾垚ACK + /// </summary> + [Description("Station_瀹屾垚ACK")] + public bool W_Station_FinishACK { get; set; } + + /// <summary> + /// 1002鎵弿澶辫触淇″彿 + /// </summary> + [Description("1002鎵弿澶辫触淇″彿")] + public bool W_1002_ScanFailACK { get; set; } + + /// <summary> + /// 1004鎵弿澶辫触淇″彿 + /// </summary> + [Description("1004鎵弿澶辫触淇″彿")] + public bool W_1004_ScanFailACK { get; set; } + + /// <summary> + /// 1006鎵弿澶辫触淇″彿 + /// </summary> + [Description("1006鎵弿澶辫触淇″彿")] + public bool W_1006_ScanFailACK { get; set; } + + /// <summary> + /// 1007鎵弿澶辫触淇″彿 + /// </summary> + [Description("1007鎵弿澶辫触淇″彿")] + public bool W_1007_ScanFailACK { get; set; } + + /// <summary> + /// 1002鎵弿鎴愬姛淇″彿 + /// </summary> + [Description("1002鎵弿鎴愬姛淇″彿")] + public bool W_1002_ScanSuccessACK { get; set; } + + /// <summary> + /// 1004鎵弿鎴愬姛淇″彿 + /// </summary> + [Description("1004鎵弿鎴愬姛淇″彿")] + public bool W_1004_ScanSuccessACK { get; set; } + + /// <summary> + /// 1006鎵弿鎴愬姛淇″彿 + /// </summary> + [Description("1006鎵弿鎴愬姛淇″彿")] + public bool W_1006_ScanSuccessACK { get; set; } + + /// <summary> + /// 1007鎵弿鎴愬姛淇″彿 + /// </summary> + [Description("1007鎵弿鎴愬姛淇″彿")] + public bool W_1007_ScanSuccessACK { get; set; } + + /// <summary> + /// 鍑哄簱鍙戝姩鏈虹殑鍨嬪彿 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + [Description("鍑哄簱鍙戝姩鏈虹殑鍨嬪彿")] + public string W_Out_MaterialModel { get; set; } + + /// <summary> + /// 鍑哄簱鍙戝姩鏈虹殑璁㈣揣鍙� 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + [Description("鍑哄簱鍙戝姩鏈虹殑璁㈣揣鍙�")] + public string W_Out_OrderNo { get; set; } + + /// <summary> + /// 鍑哄簱鍙戝姩鏈虹殑缂栧彿 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + [Description("鍑哄簱鍙戝姩鏈虹殑缂栧彿")] + public string W_Out_SerialNumber { get; set; } + + + #region 鍐欑殑绔欑偣 + + public List<StationDB2ObjForWriteComm> W_StationForWriteCommList { get; set; } + + #endregion + + + + #endregion + + #region 璇诲彇鍒扮殑Station淇℃伅 + /// <summary> + /// 蹇冭烦 + /// </summary> + [Description("蹇冭烦")] + public int R_HandShake { get; set; } + /// <summary> + /// Station缂栧彿 + /// </summary> + [Description("Station缂栧彿")] + public string R_StationNo { get; set; } + + + /// <summary> + /// 1015鎵爜 + /// </summary> + [Description("1015鎵爜")] + public string R_1015_Scan { get; set; } + + /// <summary> + /// 1019鎵爜 + /// </summary> + [Description("1019鎵爜")] + public string R_1019_Scan { get; set; } + + /// <summary> + /// 1019鍙戝姩鏈虹殑鎵爜 + /// </summary> + [Description("1019鍙戝姩鏈虹殑鎵爜")] + public string R_1019_CargoNoScan { get; set; } + + /// <summary> + /// 1002鎵爜 + /// </summary> + [Description("1002鎵爜")] + public string R_1002_Scan { get; set; } + + /// <summary> + /// 1004鎵爜 + /// </summary> + [Description("1004鎵爜")] + public string R_1004_Scan { get; set; } + + /// <summary> + /// 1006鎵爜 + /// </summary> + [Description("1006鎵爜")] + public string R_1006_Scan { get; set; } + + + /// <summary> + /// 1007鎵爜 + /// </summary> + [Description("1007鎵爜")] + public string R_1007_Scan { get; set; } + + /// <summary> + /// 1009鐨�1灞傛娴嬪厜鐢� + /// </summary> + [Description("1009鐨�1灞傛娴嬪厜鐢�")] + public bool R_1009_High1 { get; set; } + + /// <summary> + /// 1009鐨�2灞傛娴嬪厜鐢� + /// </summary> + [Description("1009鐨�2灞傛娴嬪厜鐢�")] + public bool R_1009_High2 { get; set; } + + /// <summary> + /// 1009鐨�3灞傛娴嬪厜鐢� + /// </summary> + [Description("1009鐨�3灞傛娴嬪厜鐢�")] + public bool R_1009_High3 { get; set; } + + + /// <summary> + /// Station浠诲姟瀹屾垚 + /// </summary> + [Description("Station浠诲姟瀹屾垚")] + public bool R_Station_Finish { get; set; } + + + /// <summary> + /// Station褰撳墠鍧愭爣 + /// </summary> + [Description("Station褰撳墠鍧愭爣")] + public int R_Station_Coordinate { get; set; } + + #region 璇荤殑绔欑偣 + + public List<StationDB2ObjForReadComm> R_StationForReadCommList { get; set; } + + #endregion + + + + #endregion + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDBForRead.cs b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDBForRead.cs new file mode 100644 index 0000000..3b76f37 --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDBForRead.cs @@ -0,0 +1,106 @@ +锘縰sing iWareSda.Devices._3_Station.StationModel; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareSda +{ + //Station鍦板潃绫� + public class StationDBForRead + { + #region 璇诲彇鍒扮殑Station淇℃伅 + /// <summary> + /// 蹇冭烦 + /// </summary> + [Description("蹇冭烦")] + public string R_HandShake { get; set; } + + + /// <summary> + /// 1015鎵爜 + /// </summary> + [Description("1015鎵爜")] + public string R_1015_Scan { get; set; } + + /// <summary> + /// 1019鎵爜 + /// </summary> + [Description("1019鎵爜")] + public string R_1019_Scan { get; set; } + + /// <summary> + /// 1019鍙戝姩鏈虹殑鎵爜 + /// </summary> + [Description("1019鍙戝姩鏈虹殑鎵爜")] + public string R_1019_CargoNoScan { get; set; } + + /// <summary> + /// 1002鎵爜 + /// </summary> + [Description("1002鎵爜")] + public string R_1002_Scan { get; set; } + + /// <summary> + /// 1004鎵爜 + /// </summary> + [Description("1004鎵爜")] + public string R_1004_Scan { get; set; } + + /// <summary> + /// 1006鎵爜 + /// </summary> + [Description("1006鎵爜")] + public string R_1006_Scan { get; set; } + + + /// <summary> + /// 1007鎵爜 + /// </summary> + [Description("1007鎵爜")] + public string R_1007_Scan { get; set; } + + /// <summary> + /// 1009鐨�1灞傛娴嬪厜鐢� + /// </summary> + [Description("1009鐨�1灞傛娴嬪厜鐢�")] + public string R_1009_High1 { get; set; } + + /// <summary> + /// 1009鐨�2灞傛娴嬪厜鐢� + /// </summary> + [Description("1009鐨�2灞傛娴嬪厜鐢�")] + public string R_1009_High2 { get; set; } + + /// <summary> + /// 1009鐨�3灞傛娴嬪厜鐢� + /// </summary> + [Description("1009鐨�3灞傛娴嬪厜鐢�")] + public string R_1009_High3 { get; set; } + + /// <summary> + /// Station浠诲姟瀹屾垚 + /// </summary> + [Description("Station浠诲姟瀹屾垚")] + public string R_Station_Finish { get; set; } + + + /// <summary> + /// Station褰撳墠鍧愭爣 + /// </summary> + [Description("Station褰撳墠鍧愭爣")] + public string R_Station_Coordinate { get; set; } + + #region 璇荤殑绔欑偣 + + public List<StationDBForReadComm> R_StationForReadCommList { get; set; } + + #endregion + + + + #endregion + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDBForWrite.cs b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDBForWrite.cs new file mode 100644 index 0000000..2c463ce --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvDBForWrite.cs @@ -0,0 +1,121 @@ +锘縰sing iWareSda.Devices._3_Station.StationModel; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace iWareSda +{ + //Station鍦板潃绫� + public class StationDBForWrite + { + + #region 鍐欏叆鐨凷tation淇℃伅 + /// <summary> + /// 蹇冭烦 + /// </summary> + [Description("蹇冭烦")] + public string W_HandShake { get; set; } + + /// <summary> + /// 1015閲嶆柊鎵爜锛屽啓涓簍rue琛ㄧず閲嶆柊鎵爜锛屽啓涓篺alse锛岃〃绀哄叧闂噸鏂版壂鐮併�傚綋wcs璇诲埌鍊煎悗锛屽氨鍐欎负false + /// </summary> + [Description("1015閲嶆柊鎵爜")] + public string W_1015_ReScan { get; set; } + + /// <summary> + /// 1019閲嶆柊鎵爜锛屽啓涓簍rue琛ㄧず閲嶆柊鎵爜锛屽啓涓篺alse锛岃〃绀哄叧闂噸鏂版壂鐮併�傚綋wcs璇诲埌鍊煎悗锛屽氨鍐欎负false + /// </summary> + [Description("1019閲嶆柊鎵爜")] + public string W_1019_ReScan { get; set; } + + /// <summary> + /// Station_瀹屾垚ACK + /// </summary> + [Description("Station_瀹屾垚ACK")] + public string W_Station_FinishACK { get; set; } + + + /// <summary> + /// 1002鎵弿澶辫触淇″彿 + /// </summary> + [Description("1002鎵弿澶辫触淇″彿")] + public string W_1002_ScanFailACK { get; set; } + + /// <summary> + /// 1004鎵弿澶辫触淇″彿 + /// </summary> + [Description("1004鎵弿澶辫触淇″彿")] + public string W_1004_ScanFailACK { get; set; } + + /// <summary> + /// 1006鎵弿澶辫触淇″彿 + /// </summary> + [Description("1006鎵弿澶辫触淇″彿")] + public string W_1006_ScanFailACK { get; set; } + + /// <summary> + /// 1007鎵弿澶辫触淇″彿 + /// </summary> + [Description("1007鎵弿澶辫触淇″彿")] + public string W_1007_ScanFailACK { get; set; } + + + /// <summary> + /// 1002鎵弿鎴愬姛淇″彿 + /// </summary> + [Description("1002鎵弿鎴愬姛淇″彿")] + public string W_1002_ScanSuccessACK { get; set; } + + /// <summary> + /// 1004鎵弿鎴愬姛淇″彿 + /// </summary> + [Description("1004鎵弿鎴愬姛淇″彿")] + public string W_1004_ScanSuccessACK { get; set; } + + /// <summary> + /// 1006鎵弿鎴愬姛淇″彿 + /// </summary> + [Description("1006鎵弿鎴愬姛淇″彿")] + public string W_1006_ScanSuccessACK { get; set; } + + /// <summary> + /// 1007鎵弿鎴愬姛淇″彿 + /// </summary> + [Description("1007鎵弿鎴愬姛淇″彿")] + public string W_1007_ScanSuccessACK { get; set; } + + + /// <summary> + /// 鍑哄簱鍙戝姩鏈虹殑鍨嬪彿 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + [Description("鍑哄簱鍙戝姩鏈虹殑鍨嬪彿")] + public string W_Out_MaterialModel { get; set; } + + /// <summary> + /// 鍑哄簱鍙戝姩鏈虹殑璁㈣揣鍙� 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + [Description("鍑哄簱鍙戝姩鏈虹殑璁㈣揣鍙�")] + public string W_Out_OrderNo { get; set; } + + /// <summary> + /// 鍑哄簱鍙戝姩鏈虹殑缂栧彿 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + [Description("鍑哄簱鍙戝姩鏈虹殑缂栧彿")] + public string W_Out_SerialNumber { get; set; } + + + + + #region 鍐欑殑绔欑偣 + + public List<StationDBForWriteComm> W_StationForWriteCommList { get; set; } + + #endregion + + + #endregion + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs new file mode 100644 index 0000000..cf1e1d2 --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs @@ -0,0 +1,779 @@ +锘� + +using iWareSda.Common; +using System.Linq; +using iWareModel; +using System; +using System.Collections.Generic; +using System.Threading; +using iWareCommon.Utils; +using iWareCommon.Common.Globle; +using iWareCommon; +using iWareSda.Devices._3_Station.StationModel; +using Newtonsoft.Json; +using iWareSda.Model; + + +namespace iWareSda +{ + public class StationEntity : IDevice + { + public StationEntity() + { + + } + + #region OPC鐩稿叧 + + /// <summary> + /// 鍐欑殑DB鍧� + /// </summary> + public StationDBForWrite DBBlockForWrite { get; set; } + + /// <summary> + /// 璇荤殑DB鍧� + /// </summary> + public StationDBForRead DBBlockForRead { get; set; } + + /// <summary> + /// 璇诲彇PLC瀹炰緥 + /// </summary> + public PLCService plcService { get; set; } + + /// <summary> + /// 瑙嗗浘瀵硅薄 + /// </summary> + public StationView View { get; set; } + + + #endregion + + + /// <summary> + /// 鍒濆鍖栨暟鎹� + /// </summary> + public void InitData() + { + + + } + public StationEntity(string srmName, int deviceId, StationDBForWrite _dbBlockForWrite, StationDBForRead _dbBlockForRead, PLCService _plcService) + { + this.View = new StationView(); + this.View.DeviceName = srmName; + this.View.DeviceId = deviceId; + + //闆嗗悎璧嬪�煎垵濮嬪寲 + this.View.R_StationForReadCommList = new List<StationDB2ObjForReadComm>(); + this.View.W_StationForWriteCommList = new List<StationDB2ObjForWriteComm>(); + for (int i = 0; i < WareSdaStruct.StationStationList.Count; i++) + { + this.View.R_StationForReadCommList.Add(new StationDB2ObjForReadComm() { StationCode = WareSdaStruct.StationStationList[i] }); + this.View.W_StationForWriteCommList.Add(new StationDB2ObjForWriteComm() { StationCode = WareSdaStruct.StationStationList[i] }); + } + + plcService = _plcService; + DBBlockForWrite = _dbBlockForWrite; + DBBlockForRead = _dbBlockForRead; + } + + + #region 涓�у寲鏂规硶 + + /// <summary> + /// Station浠诲姟鍙戦�� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="taskId"></param> + /// <param name="sourcePlce"></param> + /// <param name="toPlace"></param> + /// <param name="taskType"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool SendTask(int deviceId, int taskId, string sourcePlce, string toPlace, out string msg) + { + try + { + msg = ""; + if (!CanSendTask(deviceId, out msg)) + { + return false; + } + + //杩欓噷鐗规畩杞崲涓�涓� + if (toPlace == ((int)EDevice.鍑哄簱鍙�1012).ToString()) + { + toPlace = ((int)EDevice.鎻愬崌鏈�1030).ToString(); + } + + + StationDBForWriteComm w_db_source = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce); + StationDB2ObjForWriteComm w_dbObj_source = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce); + + //StationDBForWriteComm w_db_to = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace); + //StationDB2ObjForWriteComm w_dbObj_to = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace); + //濡傛灉ACK涓簍rue锛岃〃绀轰笉鑳藉彂浠诲姟 + var readObj = this.View.R_StationForReadCommList.FirstOrDefault(x => x.StationCode == sourcePlce); + if (readObj.R_ACK == true) + { + msg = "ACK涓篢RUE锛屼笉鍏佽鍙戜换鍔�"; + return false; + } + + MessageModel b2 = null; + if (!b2.result) + { + msg = string.Format("鍚慡tation{0},璧风偣{1}鍙戦�佷换鍔2},鍐欏叆鐩爣绔欑偣{3}澶辫触,杩斿洖缁撴灉:" + b2.resMsg, this.View.DeviceName, sourcePlce, taskId, toPlace); + return false; + } + b2 = this.plcService.WriteValuePoint(w_db_source.W_TaskID, Convert.ToInt32(taskId), w_dbObj_source.W_TaskID); + if (!b2.result) + { + msg = string.Format("鍚慡tation{0},璧风偣{1}锛岀洰鏍囩偣{2},鍐欏叆浠诲姟鍙穥3}澶辫触,杩斿洖缁撴灉:" + b2.resMsg, this.View.DeviceName, sourcePlce, toPlace, taskId); + return false; + } + + + return true; + } + catch (Exception ex) + { + msg = ex.Message; + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, "鍙戦�佷换鍔″嚭鐜板紓甯�:" + ex.Message, ex); + return false; + } + } + + + /// <summary> + /// 浠诲姟涓嬪彂纭(鏀跺埌PLC鍙嶉鍚嶹CS娓呴櫎锛� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool WriteStp(int deviceId, string stationCode, bool value, out string msg) + { + try + { + msg = ""; + StationDBForWriteComm w_db = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == stationCode); + StationDB2ObjForWriteComm w_dbObj = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == stationCode); + MessageModel b2 = null; + if (!b2.result) + { + msg = string.Format("鍚慡tation{0},绔欑偣鍙穥1}鍐� 浠诲姟涓嬪彂纭(鏀跺埌PLC鍙嶉鍚嶹CS娓呴櫎锛� " + value + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + this.View.DeviceName, stationCode); + return false; + } + return true; + } + catch (Exception ex) + { + msg = ex.Message; + var logcontext = string.Format("鍚慡tation{0},绔欑偣鍙穥1}鍐� 浠诲姟涓嬪彂纭(鏀跺埌PLC鍙嶉鍚嶹CS娓呴櫎锛� " + true + "鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex), + deviceId, stationCode); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); + return false; + } + } + + + /// <summary> + /// 1015閲嶆柊鎵爜 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool Write1015ReScan(int deviceId, bool value, out string msg) + { + try + { + msg = ""; + MessageModel b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_1015_ReScan, value, this.View.W_1015_ReScan); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + value + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + this.DBBlockForWrite.W_1015_ReScan); + return false; + } + return true; + } + catch (Exception ex) + { + msg = ex.Message; + var logcontext = string.Format("鍚慡tation鍦板潃{0} " + value + "鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex), + this.DBBlockForWrite.W_1015_ReScan); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); + return false; + } + } + + /// <summary> + /// 1019閲嶆柊鎵爜 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool Write1019ReScan(int deviceId, bool value, out string msg) + { + try + { + msg = ""; + MessageModel b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_1019_ReScan, value, this.View.W_1019_ReScan); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + value + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + this.DBBlockForWrite.W_1019_ReScan); + return false; + } + return true; + } + catch (Exception ex) + { + msg = ex.Message; + var logcontext = string.Format("鍚慡tation鍦板潃{0} " + value + "鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex), + this.DBBlockForWrite.W_1019_ReScan); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); + return false; + } + } + + /// <summary> + /// Station鐨勪换鍔″畬鎴怉CK璧嬪�� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool WriteStation_FinishACK(int deviceId, bool value, int plcTaskId, out string msg) + { + try + { + msg = ""; + Thread.Sleep(1000);//鍋滅暀2绉� + MessageModel b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Station_FinishACK, value, this.View.W_Station_FinishACK); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + value + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + this.DBBlockForWrite.W_Station_FinishACK); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + //閲嶆柊鍐嶈鍙栵紝鍒ゆ柇鏄惁鍐欏叆姝g‘锛屽鏋滃啓鍏ヤ笉姝g‘锛屽氨璁や负澶辫触 銆怑ditby shaocx,2023-04-03銆� + Thread.Sleep(1000);//鍋滅暀3绉� + bool finishStation = (bool)this.plcService.ReadValuePoint(this.DBBlockForRead.R_Station_Finish, typeof(bool)); + bool finisAck = (bool)this.plcService.ReadValuePoint(this.DBBlockForWrite.W_Station_FinishACK, typeof(bool)); + if (finisAck == false && finishStation == true) + { + this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Station_FinishACK, value, this.View.W_Station_FinishACK);//閲嶅彂涓�娆� 20230503 鐜嬮摦 + Thread.Sleep(1000);//鍋滅暀2绉� + finishStation = (bool)this.plcService.ReadValuePoint(this.DBBlockForRead.R_Station_Finish, typeof(bool)); + finisAck = (bool)this.plcService.ReadValuePoint(this.DBBlockForWrite.W_Station_FinishACK, typeof(bool)); + if (finisAck == false && finishStation == true) + { + + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + value + "澶辫触,SDA杩斿洖缁撴灉:true锛屼絾鏄疭DA鍐嶆璇诲彇PLC鐨勫湴鍧�鏃讹紝鑾峰彇鐨勭粨鏋滄槸FALSE锛屽嵆璁ゅ畾涓哄啓鍏ュけ璐�", + this.DBBlockForWrite.W_Station_FinishACK); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + + + } + + Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, "鍐欏叆W_Station_FinishACK锛�" + this.DBBlockForWrite.W_Station_FinishACK + "锛夊�间负" + value + "鎴愬姛锛佸洜涓篜LC浠诲姟鍙�:" + plcTaskId); + return true; + } + catch (Exception ex) + { + msg = ex.Message; + var logcontext = string.Format("鍚慡tation鍦板潃{0} " + value + "鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex), + this.DBBlockForWrite.W_Station_FinishACK); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); + return false; + } + } + + + /// <summary> + /// 鍥涗釜鍏ュ簱鍙f壂鎻忛獙璇丄CK璧嬪�� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool WriteScanValidateACK(bool isReset, int deviceId, string stationCode, bool value, int plcTaskId, out string msg) + { + msg = ""; + MessageModel b2 = null; + string address_fail = ""; + string address_success = ""; + try + { + switch (stationCode) + { + case "1002": + address_fail = this.DBBlockForWrite.W_1002_ScanFailACK; + address_success = this.DBBlockForWrite.W_1002_ScanSuccessACK; + break; + case "1004": + address_fail = this.DBBlockForWrite.W_1004_ScanFailACK; + address_success = this.DBBlockForWrite.W_1004_ScanSuccessACK; + break; + case "1006": + address_fail = this.DBBlockForWrite.W_1006_ScanFailACK; + address_success = this.DBBlockForWrite.W_1006_ScanSuccessACK; + break; + case "1007": + address_fail = this.DBBlockForWrite.W_1007_ScanFailACK; + address_success = this.DBBlockForWrite.W_1007_ScanSuccessACK; + break; + default: + throw new Exception("涓嶆敮鎸佺殑绔欑偣"); + } + if (isReset) + {//鏄噸缃� + b2 = this.plcService.WriteValuePoint(address_success, false, this.View.W_1002_ScanSuccessACK); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + false + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + address_success); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + b2 = this.plcService.WriteValuePoint(address_fail, false, this.View.W_1002_ScanFailACK); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + false + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + address_fail); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + } + else + {//涓嶆槸閲嶇疆 + if (value) + {//琛ㄧず鎵弿楠岃瘉閫氳繃 + b2 = this.plcService.WriteValuePoint(address_success, true, this.View.W_1002_ScanSuccessACK); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + address_success); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + } + else + {//琛ㄧず鎵弿楠岃瘉涓嶉�氳繃 + b2 = this.plcService.WriteValuePoint(address_fail, true, this.View.W_1002_ScanFailACK); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + address_fail); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + } + } + + Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, "WriteScanFailACK鏂规硶锛屽啓鍏� 鍥涗釜鍏ュ簱鍙f壂鎻忓け璐CK璧嬪�� ScanFailACK锛�" + address_fail + "锛夊�间负" + value + "鎴愬姛锛佸洜涓篜LC浠诲姟鍙�:" + plcTaskId + ",isReset:" + isReset); + return true; + } + catch (Exception ex) + { + msg = ex.Message; + var logcontext = string.Format("WriteScanFailACK鏂规硶锛屽悜Station鍦板潃{0} " + value + "鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex), + address_fail); + if (value) + { + logcontext = string.Format("WriteScanFailACK鏂规硶锛屽悜Station鍦板潃{0} " + value + "鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex), + address_success); + } + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); + return false; + } + } + + + /// <summary> + /// 鍙栨秷鎶ヨ + /// </summary> + /// <param name="deviceId"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool ClearAlarm(int deviceId, out string msg) + { + msg = ""; + return true; + //try + //{ + // msg = ""; + // var dbNumber = Station_CacheEntity.W_DBHeader; + // MessageModel b2 = this.plcService.WriteValuePoint( this.DBBlockForWrite.W_Reset, true, this.View.W_Reset); + // if (!b2.result) + // { + // msg = string.Format("鍚慡tation{0}鍐欏叆璁惧澶嶄綅" + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, this.View.DeviceName); + // return false; + // } + // return true; + //} + //catch (Exception ex) + //{ + // msg = ex.Message; + // Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, "鍙栨秷鎶ヨ鍑虹幇寮傚父:" + ex.Message, ex); + // return false; + //} + } + + /// <summary> + /// 浠诲姟鍒犻櫎 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="taskId"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool DeleteTask(int deviceId, int taskId, out string msg) + { + msg = ""; + return true; + //try + //{ + // msg = ""; + // if (this.View.R_TaskNo != taskId) + // { + // msg = string.Format("Station褰撳墠闈炴墽琛宼askId={0}鐨勪换鍔�", taskId); + // return false; + // } + // var dbNumber = Station_CacheEntity.W_DBHeader; + // MessageModel b2 = this.plcService.WriteValuePoint( this.DBBlockForWrite.W_TaskNo, taskId, this.View.W_TaskNo); + // if (!b2.result) + // { + // msg = string.Format("鍚慡tation{0}鍐欏叆浠诲姟鍙�" + taskId + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, this.View.DeviceName); + // return false; + // } + // b2 = this.plcService.WriteValuePoint( this.DBBlockForWrite.W_Reset, 1, this.View.W_Reset); + // if (!b2.result) + // { + // msg = string.Format("鍚慡tation{0}鍐欏叆璁惧澶嶄綅" + 1 + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, this.View.DeviceName); + // return false; + // } + // return true; + //} + //catch (Exception ex) + //{ + // msg = ex.Message; + // Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, "浠诲姟鍒犻櫎鍑虹幇寮傚父:" + ex.Message, ex); + // return false; + //} + } + + /// <summary> + /// 鎬ュ仠 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool EmergencyStop(int deviceId, string stationCode, out string msg) + { + msg = ""; + return true; + //try + //{ + // msg = ""; + // var dbNumber = Station_CacheEntity.W_DBHeader; + // MessageModel b2 = this.plcService.WriteValuePoint( this.DBBlockForWrite.W_StationForWriteCommList.Find(x => x.StationCode == stationCode)., 1, this.View.W_EStop); + // if (!b2.result) + // { + // msg = string.Format("鍚慡tation{0}鍐欏叆鎬ュ仠" + 1 + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, this.View.DeviceName); + // return false; + // } + // return true; + //} + //catch (Exception ex) + //{ + // msg = ex.Message; + // Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, "鎬ュ仠鍑虹幇寮傚父:" + ex.Message, ex); + // return false; + //} + } + + /// <summary> + /// 鏄惁鍙互鍙戦�佷换鍔� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="taskType"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool CanSendTask(int deviceId, out string msg) + { + msg = ""; + //妯℃嫙 + //if (!this.View.IsConnected) + //{ + // msg = "宸茬绾�"; + // return false; + //} + //if (this.View.R_Mode != (int)EStationMode.杩炴満鑷姩妯″紡) + //{ + // msg = "褰撳墠闈炶嚜鍔ㄦā寮�"; + // return false; + //} + //if (this.View.R_State != (int)EStationState.绌洪棽) + //{ + // msg = "璁惧鐘舵�侀潪绌洪棽锛屾棤娉曟墽琛屽叾浠栦换鍔�"; + // return false; + //} + return true; + } + + /// <summary> + /// Station鏄惁鏄嚜鍔ㄥ緟鏈烘ā寮� + /// </summary> + /// <param name="msg"></param> + /// <returns></returns> + public bool StationIsAutoAwaitMode(string stationCode, out string msg) + { + msg = ""; + var readData = this.View.R_StationForReadCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); + if (readData.R_Model != (int)EStationMode.鑷姩寰呮満妯″紡) + { + EStationMode mode = (EStationMode)Enum.Parse(typeof(EStationMode), readData.R_Model.ToString()); + msg = "绔欑偣" + stationCode + " 褰撳墠妯″紡鏄痆" + mode.ToString() + "],闈炶嚜鍔ㄥ緟鏈烘ā寮�"; + return false; + } + return true; + } + + /// <summary> + /// Station鏄惁鏄嚜鍔ㄦā寮� + /// </summary> + /// <param name="msg"></param> + /// <returns></returns> + public bool StationIsAuto(string stationCode, out string msg) + { + msg = ""; + var readData = this.View.R_StationForReadCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); + if (readData.R_Model != (int)EStationMode.鑷姩寰呮満妯″紡 && readData.R_Model != (int)EStationMode.鑷姩杩愯妯″紡) + { + EStationMode mode = (EStationMode)Enum.Parse(typeof(EStationMode), readData.R_Model.ToString()); + msg = "绔欑偣" + stationCode + " 褰撳墠妯″紡鏄痆" + mode.ToString() + "],闈炶嚜鍔ㄥ緟鏈烘ā寮忔垨鑷姩杩愯妯″紡"; + return false; + } + return true; + } + + /// <summary> + /// Station鏄惁鏄┖闂茬姸鎬� + /// </summary> + /// <param name="msg"></param> + /// <returns></returns> + public bool StationIsStateFree(string stationCode, out string msg) + { + msg = ""; + var readData = this.View.R_StationForReadCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); + if (readData.R_State != (int)EStationState.绌洪棽) + { + EStationMode mode = (EStationMode)Enum.Parse(typeof(EStationMode), readData.R_Model.ToString()); + msg = "绔欑偣" + stationCode + " 褰撳墠鐘舵�佹槸[" + mode.ToString() + "],闈炵┖闂�"; + return false; + } + return true; + } + + /// <summary> + /// 鍙戝姩鏈哄嚭搴擄紝缁欒タ娓疨LC鍙戦�佸彂鍔ㄦ満鏁版嵁 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <param name="msg"></param> + /// <returns></returns> + public bool WriteStation_XigangGetDataForOut(int deviceId, string value__Out_MaterialModel, + string value_Out_OrderNo, + string value_Out_SerialNumber, + int plcTaskId, out string msg) + { + try + { + msg = ""; + MessageModel b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Out_MaterialModel, value__Out_MaterialModel, this.View.W_Out_MaterialModel); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + value__Out_MaterialModel + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + this.DBBlockForWrite.W_Out_MaterialModel); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Out_OrderNo, value_Out_OrderNo, this.View.W_Out_OrderNo); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + value_Out_OrderNo + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + this.DBBlockForWrite.W_Out_OrderNo); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Out_SerialNumber, value_Out_SerialNumber, this.View.W_Out_SerialNumber); + if (!b2.result) + { + msg = string.Format("鍚慡tation鍦板潃{0} 鍐� " + value_Out_SerialNumber + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + this.DBBlockForWrite.W_Out_SerialNumber); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); + return false; + } + + + Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, $"鍐欏叆 鍙戝姩鏈哄嚭搴擄紝缁欒タ娓疨LC鍙戦�佸彂鍔ㄦ満鏁版嵁鎴愬姛锛佷换鍔″彿{plcTaskId},鏈哄瀷{value__Out_MaterialModel}锛岃璐у彿{value_Out_OrderNo},缂栧彿{value_Out_SerialNumber}" + plcTaskId); + return true; + } + catch (Exception ex) + { + msg = ex.Message; + var logcontext = $"浠诲姟鍙穥plcTaskId},鏈哄瀷{value__Out_MaterialModel}锛岃璐у彿{value_Out_OrderNo},缂栧彿{value_Out_SerialNumber},鍐欏叆 鍙戝姩鏈哄嚭搴擄紝缁欒タ娓疨LC鍙戦�佸彂鍔ㄦ満鏁版嵁鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex); + Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); + return false; + } + } + + #endregion + + public void SetPropertyValueForRead() + { + var r_dbBlock = this.DBBlockForRead; + SdaHelper.SetPropertyValueForDB<StationDBForRead, StationView>(r_dbBlock, this.View, this.plcService, ""); + //鐗规畩澶勭悊List闆嗗悎 + foreach (var item in r_dbBlock.R_StationForReadCommList) + { + StationDB2ObjForReadComm StationDB2ObjForReadComm = this.View.R_StationForReadCommList.Where(x => x.StationCode == item.StationCode).First(); + SdaHelper.SetPropertyValueForDB<StationDBForReadComm, StationDB2ObjForReadComm>(item, StationDB2ObjForReadComm, this.plcService, ""); + } + //杩欓噷鐗规畩澶勭悊 璇诲彇鐨勫彂鍔ㄦ満鐮� + this.View.R_1019_CargoNoScan = GetNewCategoryNo(this.View.R_1019_CargoNoScan); + } + + + public void SetPropertyValueForWrite() + { + var w_dbBlock = this.DBBlockForWrite; + SdaHelper.SetPropertyValueForDB<StationDBForWrite, StationView>(w_dbBlock, this.View, this.plcService, ""); + //鐗规畩澶勭悊List闆嗗悎 + foreach (var item in w_dbBlock.W_StationForWriteCommList) + { + StationDB2ObjForWriteComm StationDB2ObjForWriteComm = this.View.W_StationForWriteCommList.Where(x => x.StationCode == item.StationCode).First(); + SdaHelper.SetPropertyValueForDB<StationDBForWriteComm, StationDB2ObjForWriteComm>(item, StationDB2ObjForWriteComm, this.plcService, ""); + } + } + + /// <summary> + /// 鏄惁鏈夊績璺� + /// </summary> + /// <returns></returns> + public bool IsHaveHeatBeat() + { + try + { + var r_dbBlock = this.DBBlockForRead; + short value = Convert.ToInt16(this.plcService.ReadValuePoint(r_dbBlock.R_HandShake, typeof(short))); + //绾﹀畾 绛夊緟2绉� + Thread.Sleep(2000); + short value_next = Convert.ToInt16(this.plcService.ReadValuePoint(r_dbBlock.R_HandShake, typeof(short))); + if (value == value_next) + {//娌℃湁蹇冭烦 + return false; + } + else + {//鏈夊績璺� + return true; + } + } + catch (Exception ex) + { + throw ex; + } + } + + #region 鑾峰彇褰撳墠鎶ヨ淇℃伅 + + + /// <summary> + /// 鑾峰彇Station褰撳墠鎶ヨ淇℃伅 + /// </summary> + /// <returns></returns> + public List<DeviceWarningInfo> GetStationAlertDatas() + { + List<DeviceWarningInfo> db_warningList = new List<DeviceWarningInfo>(); + try + { + string _dbValue; + var isHasAlert = false; + IDictionary<string, string> StationAlertDict = new Dictionary<string, string>(); + StationAlertDict = WareSdaStruct.StationAlertDict; + foreach (var item in StationAlertDict) + { + _dbValue = item.Key; + isHasAlert = Convert.ToBoolean(this.plcService.ReadValuePoint(Station_CacheEntity.R_DBHeader_Station_Alert, item.Key, typeof(bool))); + if (isHasAlert) + { + db_warningList.Add(new DeviceWarningInfo() + { + Address = item.Key, + Code = item.Key, + Context = item.Value.Trim() + }); + } + } + } + catch (Exception ex) + { + throw ex; + } + return db_warningList; + } + + /// <summary> + /// 鑾峰彇杈撻�佺嚎褰撳墠鎶ヨ淇℃伅 + /// </summary> + /// <returns></returns> + public List<DeviceWarningInfo> GetLineAlertDatas() + { + List<DeviceWarningInfo> db_warningList = new List<DeviceWarningInfo>(); + try + { + IDictionary<string, string> srmAlertDict = new Dictionary<string, string>(); + foreach (var item in this.View.R_StationForReadCommList) + { + if (item.R_AlarmCode > 0) + { + item.R_AlarmCodeMsg = WareSdaStruct.StationAlertDict[item.R_AlarmCode.ToString()]; + } + } + } + catch (Exception ex) + { + throw ex; + } + return db_warningList; + } + + + #endregion + + /// <summary> + /// 鐗规畩澶勭悊涓� 璇诲彇鐨勫彂鍔ㄦ満鐮� + /// </summary> + /// <param name="orgCategoryNo"></param> + /// <returns></returns> + private string GetNewCategoryNo(string orgCategoryNo) + { + Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, "璇诲彇鐨勫彂鍔ㄦ満鐮�,鍘熷璇诲彇鐨勫��:" + orgCategoryNo); + //濡傛灉鏈� $R鍐呭锛屽氨鏇挎崲涓虹┖ + var repStr = "$R"; + if (!string.IsNullOrEmpty(orgCategoryNo) && orgCategoryNo.IndexOf(repStr) > -1) + { + orgCategoryNo = orgCategoryNo.Replace(repStr, ""); + } + Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, "璇诲彇鐨勫彂鍔ㄦ満鐮�,鏇挎崲鍚庣殑鍊�:" + orgCategoryNo); + return orgCategoryNo; + } + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/StationView.cs b/SDA/iWareSda/Devices/4-Station/StationModel/StationView.cs new file mode 100644 index 0000000..75318ff --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationModel/StationView.cs @@ -0,0 +1,43 @@ +锘� +using iWareSda.Model; +using System.Collections.Generic; +using System.ComponentModel; +namespace iWareSda +{ + /// <summary> + /// Station灞曠ず瀹炰綋绫� + /// </summary> + public class StationView : StationDB2Obj + { + /// <summary> + /// 璁惧鍚嶇О + /// </summary> + [Description("璁惧鍚嶇О")] + public string DeviceName { get; set; } + /// <summary> + /// 璁惧缂栧彿 + /// </summary> + [Description("璁惧缂栧彿")] + public int DeviceId { get; set; } + + /// <summary> + /// 鏄惁宸茬粡杩炴帴 + /// </summary> + [Description("鏄惁宸茬粡杩炴帴")] + public bool IsConnected { get; set; } + + + /// <summary> + /// 杈撻�佺嚎鎶ヨDB闆嗗悎 + /// </summary> + [Description("鎶ヨDB闆嗗悎")] + public List<DeviceWarningInfo> R_Line_WarningDBList { get; set; } + + /// <summary> + /// Station鎶ヨDB闆嗗悎 + /// </summary> + [Description("Station鎶ヨDB闆嗗悎")] + public List<DeviceWarningInfo> R_Station_WarningDBList { get; set; } + + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs b/SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs new file mode 100644 index 0000000..81fb0af --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs @@ -0,0 +1,314 @@ +锘縰sing iWareCommon.Utils; +using iWareModel; +using iWareSda.Devices._3_Station.StationModel; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace iWareSda +{ + /// <summary> + /// Station瀹炰綋绫� + /// </summary> + public static class Station_CacheEntity + { + public static LogType curLogType = LogType.StationSdaService; + + #region Station1 + + /// <summary> + /// 鍐欏叆DB + /// </summary> + public static string W_DBHeaderWithSeparate = "610" + WareSdaStruct.PLCDBADDRESS_SEPARATE; + /// <summary> + /// 璇诲彇DB + /// </summary> + public static string R_DBHeaderWithSeparate = "600" + WareSdaStruct.PLCDBADDRESS_SEPARATE; + + /// <summary> + /// 璇诲彇DB(鎵爜) + /// </summary> + public static string R_DBHeader_ScanWithSeparate = "80" + WareSdaStruct.PLCDBADDRESS_SEPARATE; + + /// <summary> + /// 璇诲彇DB(鎶ヨ涓撶敤) + /// </summary> + public static string R_DBHeader_Alert = "91" + WareSdaStruct.PLCDBADDRESS_SEPARATE; + + /// <summary> + /// 璇诲彇DB(Station鎶ヨ涓撶敤) + /// </summary> + public static string R_DBHeader_Station_Alert = "1090"; + + + /// <summary> + /// 瑗挎腐鏂归噰闆嗗嚭搴撳彂鍔ㄦ満鏁版嵁锛屽啓鍏B 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + public static string W_DBHeaderForXigangGetDataWithSeparate = "3" + WareSdaStruct.PLCDBADDRESS_SEPARATE; + + private static StationDBForWrite _dbBlockForWrite = SetW_StationForWriteCommList(); + + + private static StationDBForRead _dbBlockForRead = SetR_StationForWriteCommList(); + + + private static HslCommunicationParam hslCommunicationParam = new HslCommunicationParam() + { + cpu = WareSdaStruct.Station_SiemensPLCS, + ip = WareSdaStruct.Station_Address, + rack = WareSdaStruct.Station_Rack, + slot = WareSdaStruct.Station_Slot, + port = WareSdaStruct.Station_Port + }; + private static SS7Param s7Param = new SS7Param() + { + cpu = WareSdaStruct.Station_PLC_CpuType, + ip = WareSdaStruct.Station_Address, + rack = WareSdaStruct.Station_Rack, + slot = WareSdaStruct.Station_Slot, + }; + private static PLCService PLCService = PLCFactory.GetOPCService(WareSdaStruct.System_PlcServiceTypeEnum, s7Param, hslCommunicationParam); + private static StationEntity Station = new StationEntity("Station", (int)EDevice.Station, _dbBlockForWrite, _dbBlockForRead, PLCService); + + #endregion + + private static List<StationEntity> _deviceObjList = null; + private static object objLock = new object(); + + /// <summary> + /// 鐢熸垚璁惧瀹炰綋绫� + /// </summary> + public static List<StationEntity> DeviceObjs + { + get + { + if (_deviceObjList == null) + { + lock (objLock) + { + if (_deviceObjList == null) + { + _deviceObjList = new List<StationEntity>(); + _deviceObjList.Add(Station); + } + } + } + return Station_CacheEntity._deviceObjList; + } + set { Station_CacheEntity._deviceObjList = value; } + } + + private static T GetDeviceObj<T>(int deviceId) + { + var device = Station_CacheEntity.DeviceObjs.FirstOrDefault(x => x.View.DeviceId == deviceId); + return (T)(Object)device; + } + + + /// <summary> + /// 鑾峰彇璁惧瀵硅薄 + /// </summary> + /// <param name="deviceId"></param> + /// <returns></returns> + public static SdaResEntity GetDeviceObj(int deviceId) + { + SdaResEntity sdaResult = new SdaResEntity(); + StationEntity Station = Station_CacheEntity.GetDeviceObj<StationEntity>(deviceId); + if (Station == null) + { + return SdaResEntity.Failure("娌℃湁鎵惧埌Station璁惧"); + } + return SdaResEntity.Success("鎴愬姛", Station); + } + + + /// <summary> + /// 鍐欏叆鍦板潃闆嗗悎璧嬪�� + /// </summary> + /// <param name="_dbBlockForWrite"></param> + /// <param name="_dbBlockForRead"></param> + private static StationDBForWrite SetW_StationForWriteCommList() + { + StationDBForWrite _dbBlockForWrite = new StationDBForWrite() + { + //TODO:杩欓噷鍐欓厤缃殑DB鍦板潃 + #region 鍐欏叆 + W_HandShake = W_DBHeaderWithSeparate + "0.0", + W_1015_ReScan = R_DBHeader_ScanWithSeparate + "302.0", //1015浣嶇疆閲嶆柊鎵爜 銆怑ditBy shaocx,2022-05-02銆� + W_1019_ReScan = R_DBHeader_ScanWithSeparate + "368.0", //1019浣嶇疆閲嶆柊鎵爜锛� 銆怑ditBy shaocx,2022-05-02銆� + W_Station_FinishACK = W_DBHeaderWithSeparate + "146.0", + + W_1002_ScanFailACK = R_DBHeader_ScanWithSeparate + "66.1", + W_1004_ScanFailACK = R_DBHeader_ScanWithSeparate + "126.1", + W_1006_ScanFailACK = R_DBHeader_ScanWithSeparate + "186.1", + W_1007_ScanFailACK = R_DBHeader_ScanWithSeparate + "246.1", + + W_1002_ScanSuccessACK = R_DBHeader_ScanWithSeparate + "66.0", + W_1004_ScanSuccessACK = R_DBHeader_ScanWithSeparate + "126.0", + W_1006_ScanSuccessACK = R_DBHeader_ScanWithSeparate + "186.0", + W_1007_ScanSuccessACK = R_DBHeader_ScanWithSeparate + "246.0", + + W_Out_MaterialModel = W_DBHeaderForXigangGetDataWithSeparate + "0.0", + W_Out_OrderNo = W_DBHeaderForXigangGetDataWithSeparate + "18.0", + W_Out_SerialNumber = W_DBHeaderForXigangGetDataWithSeparate + "36.0", + #endregion + }; + + //鍐欏叆鍦板潃 + _dbBlockForWrite.W_StationForWriteCommList = new List<StationDBForWriteComm>(); + + _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm() { StationCode = "1001", W_TaskID = W_DBHeaderWithSeparate + "6.0" }); + _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm() { StationCode = "1002", W_TaskID = W_DBHeaderWithSeparate + "14.0" }); + _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm() { StationCode = "1003", W_TaskID = W_DBHeaderWithSeparate + "22.0" }); + + + + return _dbBlockForWrite; + } + + ///// <summary> + ///// 璇诲彇鍦板潃闆嗗悎璧嬪�� + ///// </summary> + ///// <param name="_dbBlockForWrite"></param> + ///// <param name="_dbBlockForRead"></param> + //private static StationDBForWrite SetW_StationForWriteCommList2() + //{ + // StationDBForWrite _dbBlockForRead = new StationDBForWrite() + // { + // //TODO:杩欓噷鍐欓厤缃殑DB鍦板潃 + // #region 璇诲彇 + // W_HandShake = "0.0", + + // #endregion + // }; + + // //璇诲彇鍦板潃 + // double default_STP = 2.0; + // double default_Destination = 4.0; + // double default_TaskID = 6.0; + + // int addValue = 16; + // _dbBlockForRead.W_StationForWriteCommList = new List<StationDBForWriteComm>(); + // for (int i = 0; i < WareSdaStruct.StationStationList.Count; i++) + // { + // var stationCode = WareSdaStruct.StationStationList[i]; + // if (i > 0) + // { + // default_STP += addValue; + // default_Destination += addValue; + // default_TaskID += addValue; + // } + // _dbBlockForRead.W_StationForWriteCommList.Add(new StationDBForWriteComm() + // { + // StationCode = stationCode, + // W_STP = default_STP.ToString("0.0"), + // W_Destination = default_Destination.ToString("0.0"), + // W_TaskID = default_TaskID.ToString("0.0"), + // }); + + // } + + // return _dbBlockForRead; + + //} + + /// <summary> + /// 璇诲彇鍦板潃闆嗗悎璧嬪�� + /// </summary> + /// <param name="_dbBlockForWrite"></param> + /// <param name="_dbBlockForRead"></param> + private static StationDBForRead SetR_StationForWriteCommList() + { + StationDBForRead _dbBlockForRead = new StationDBForRead() + { + //TODO:杩欓噷鍐欓厤缃殑DB鍦板潃 + #region 璇诲彇 + R_HandShake = R_DBHeaderWithSeparate + "0.0", + + //娉ㄦ剰锛氳繖閲岀敤鐨勬壂鎻忕殑鍦板潃鍧� + R_1015_Scan = R_DBHeader_ScanWithSeparate + "48.0", + R_1019_Scan = R_DBHeader_ScanWithSeparate + "356.0", + R_1019_CargoNoScan = R_DBHeader_ScanWithSeparate + "378.0", + R_1002_Scan = R_DBHeader_ScanWithSeparate + "108.0", + R_1004_Scan = R_DBHeader_ScanWithSeparate + "168.0", + R_1006_Scan = R_DBHeader_ScanWithSeparate + "228.0", + R_1007_Scan = R_DBHeader_ScanWithSeparate + "288.0", + R_1009_High1 = R_DBHeader_ScanWithSeparate + "300.0", + R_1009_High2 = R_DBHeader_ScanWithSeparate + "300.1", + R_1009_High3 = R_DBHeader_ScanWithSeparate + "300.2", + + R_Station_Finish = R_DBHeaderWithSeparate + "349.0", + + R_Station_Coordinate = R_DBHeader_ScanWithSeparate + "304.0" + + #endregion + }; + + //璇诲彇鍦板潃 + double default_PH_1 = 2.0; + double default_PH_2 = 2.1; + double default_ACK = 2.2; + double default_Model = 4.0; + double default_State = 6.0; + double default_AlarmCode = 8.0; + double default_Destination = 10.0; + double default_Shape = 12.0; + double default_TaskID = 14.0; + int addValue = 16; + _dbBlockForRead.R_StationForReadCommList = new List<StationDBForReadComm>(); + for (int i = 0; i < WareSdaStruct.StationStationList.Count; i++) + { + var stationCode = WareSdaStruct.StationStationList[i]; + if (stationCode == "1019") + { + _dbBlockForRead.R_StationForReadCommList.Add(new StationDBForReadComm() + { + StationCode = stationCode, + R_PH_1 = R_DBHeaderWithSeparate + "350.0", + R_PH_2 = R_DBHeaderWithSeparate + "350.1", + R_ACK = R_DBHeaderWithSeparate + "350.2", + R_Model = R_DBHeaderWithSeparate + ("352.0"), + R_State = R_DBHeaderWithSeparate + ("354.0"), + R_AlarmCode = R_DBHeaderWithSeparate + ("356.0"), + R_Destination = R_DBHeaderWithSeparate + ("358.0"), + R_Shape = R_DBHeaderWithSeparate + ("360.0"), + R_TaskID = R_DBHeaderWithSeparate + ("362.0") + }); + } + else + { + if (i > 0) + { + default_PH_1 += addValue; + default_PH_2 += addValue; + default_ACK += addValue; + default_Model += addValue; + default_State += addValue; + default_AlarmCode += addValue; + default_Destination += addValue; + default_Shape += addValue; + default_TaskID += addValue; + } + _dbBlockForRead.R_StationForReadCommList.Add(new StationDBForReadComm() + { + StationCode = stationCode, + R_PH_1 = R_DBHeaderWithSeparate + default_PH_1.ToString("0.0"), + R_PH_2 = R_DBHeaderWithSeparate + default_PH_2.ToString("0.0") + , + R_ACK = R_DBHeaderWithSeparate + default_ACK.ToString("0.0"), + R_Model = R_DBHeaderWithSeparate + default_Model.ToString("0.0"), + R_State = R_DBHeaderWithSeparate + default_State.ToString("0.0"), + R_AlarmCode = R_DBHeaderWithSeparate + default_AlarmCode.ToString("0.0"), + R_Destination = R_DBHeaderWithSeparate + default_Destination.ToString("0.0"), + R_Shape = R_DBHeaderWithSeparate + default_Shape.ToString("0.0"), + R_TaskID = R_DBHeaderWithSeparate + default_TaskID.ToString("0.0") + }); + } + } + + return _dbBlockForRead; + + } + + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs b/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs new file mode 100644 index 0000000..29ac693 --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs @@ -0,0 +1,138 @@ +锘縰sing iWareModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.ServiceModel; +using System.Text; + +namespace iWareSda +{ + // 娉ㄦ剰: 浣跨敤鈥滈噸鏋勨�濊彍鍗曚笂鐨勨�滈噸鍛藉悕鈥濆懡浠わ紝鍙互鍚屾椂鏇存敼浠g爜鍜岄厤缃枃浠朵腑鐨勬帴鍙e悕鈥淚StationService鈥濄�� + [ServiceContract] + public interface IStationService + { + /// <summary> + /// 瑙h + /// </summary> + /// <param name="deviceId"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity ClearAlarm(int deviceId); + + /// <summary> + /// 涓嬪彂Station浠诲姟 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="taskId"></param> + /// <param name="sourcePlce"></param> + /// <param name="toPlace"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity SendStationTask(int deviceId, int taskId, string sourcePlce, string toPlace); + + /// <summary> + /// 浠诲姟涓嬪彂纭(鏀跺埌PLC鍙嶉鍚嶹CS娓呴櫎锛� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="stationCode"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity WriteStp(int deviceId, bool value, string stationCode); + + + [OperationContract] + StationView GetStationInfo(int deviceId); + + [OperationContract] + SdaResEntity IsTaskFinish(int deviceId, int taskId); + + [OperationContract] + SdaResEntity DeleteStationTask(int deviceId, int taskId); + + ///// <summary> + ///// Station鎬ュ仠 + ///// </summary> + ///// <param name="deviceId"></param> + ///// <returns></returns> + //[OperationContract] + //SdaResEntity EmergencyStop(int deviceId); + + /// <summary> + /// Station鏄惁鏄嚜鍔ㄦā寮� + /// </summary> + /// <returns></returns> + [OperationContract] + SdaResEntity IsStationAuto(int deviceId, string stationCode); + + /// <summary> + /// 鍒ゆ柇Station鏄惁鍙敤锛屾槸鍚﹀彲浠ュ彂閫佹柊浠诲姟缁橲tation + /// </summary> + /// <param name="srmId"></param> + /// <param name="msg"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity IsAllowSendTask(bool isNeedValidateRealSourceAndToPlace, int deviceId, string stationCode, string toStationCode, bool isStationTask); + + + /// <summary> + /// 鍒ゆ柇鏄惁鏈夊績璺� + /// </summary> + /// <param name="deviceId"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity IsHaveHeatBeat(int deviceId); + + /// <summary> + /// 1015閲嶆柊鎵爜 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity Write1015ReScan(int deviceId, bool value); + + /// <summary> + /// 1019閲嶆柊鎵爜 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity Write1019ReScan(int deviceId, bool value); + + /// <summary> + /// Station鐨勪换鍔″畬鎴怉CK璧嬪�� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity WriteStation_FinishACK(int deviceId, bool value, int plcTaskId); + + /// <summary> + /// 鍥涗釜鍏ュ簱鍙f壂鎻忛獙璇丄CK璧嬪�� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity WriteScanValidateACK(bool isReset, int deviceId, string stationCode, bool value, int plcTaskId); + + /// <summary> + /// 鍙戝姩鏈哄嚭搴擄紝缁欒タ娓疨LC鍙戦�佸彂鍔ㄦ満鏁版嵁 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value__Out_MaterialModel"></param> + /// <param name="value_Out_OrderNo"></param> + /// <param name="value_Out_SerialNumber"></param> + /// <param name="plcTaskId"></param> + /// <returns></returns> + [OperationContract] + SdaResEntity WriteStation_XigangGetDataForOut(int deviceId, string value__Out_MaterialModel, + string value_Out_OrderNo, + string value_Out_SerialNumber, + int plcTaskId); + + } +} diff --git a/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs b/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs new file mode 100644 index 0000000..403d284 --- /dev/null +++ b/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs @@ -0,0 +1,576 @@ +锘縰sing iWareCommon.Utils; +using iWareModel; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.ServiceModel; +using System.Text; + + +namespace iWareSda +{ + // 娉ㄦ剰: 浣跨敤鈥滈噸鏋勨�濊彍鍗曚笂鐨勨�滈噸鍛藉悕鈥濆懡浠わ紝鍙互鍚屾椂鏇存敼浠g爜鍜岄厤缃枃浠朵腑鐨勭被鍚嶁�淪tationService鈥濄�� + public class StationService : IStationService + { + public SdaResEntity ClearAlarm(int deviceId) + { + SdaResEntity sdaResult = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + string msg; + var result = Station.ClearAlarm(deviceId, out msg); + Log4NetHelper.WriteInfoLog(LogType.StationSdaService, "涓嬪彂deviceId=" + deviceId + "鐨凷tation娑堣鎸囦护" + (result ? "鎴愬姛" : "澶辫触") + "鍘熷洜锛�" + msg); + sdaResult.result = result; + sdaResult.resMsg = msg; + return sdaResult; + } + catch (Exception ex) + { + sdaResult.result = false; + sdaResult.resMsg = JsonConvert.SerializeObject(ex); + return sdaResult; + } + } + + + /// <summary> + /// 涓嬪彂Station浠诲姟 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="taskId"></param> + /// <param name="sourcePlce"></param> + /// <param name="toPlace"></param> + /// <param name="pallType"></param> + /// <returns></returns> + public SdaResEntity SendStationTask(int deviceId, int taskId, string sourcePlce, string toPlace) + { + SdaResEntity sdaResult = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + //濡傛灉STP涓篢RUE锛岃〃绀轰笉鑳藉彂浠诲姟 + + + string msg; + var result = Station.SendTask(deviceId, taskId, sourcePlce, toPlace, out msg); + Log4NetHelper.WriteInfoLog(LogType.StationSdaService, "涓嬪彂deviceId=" + deviceId + ",taskId=" + taskId + ",fromPlace=" + + sourcePlce + ",toPlace=" + toPlace + "鐨凷tation浠诲姟" + (result ? "鎴愬姛" : "澶辫触") + "鍘熷洜锛�" + msg); + + sdaResult.result = result; + sdaResult.resMsg = msg; + return sdaResult; + } + catch (Exception ex) + { + sdaResult.result = false; + sdaResult.resMsg = JsonConvert.SerializeObject(ex); + return sdaResult; + } + } + + /// <summary> + /// 浠诲姟涓嬪彂纭(鏀跺埌PLC鍙嶉鍚嶹CS娓呴櫎锛� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="stationCode"></param> + /// <returns></returns> + public SdaResEntity WriteStp(int deviceId, bool value, string stationCode) + { + SdaResEntity _SdaResEntity = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + string msg = ""; + var result = Station.WriteStp(deviceId, stationCode, value, out msg); + Log4NetHelper.WriteInfoLog(LogType.StationSdaService, + "涓嬪彂deviceId=" + deviceId + "锛岀珯鐐瑰彿=" + stationCode + "鐨勪换鍔′笅鍙戠‘璁�(鏀跺埌PLC鍙嶉鍚嶹CS娓呴櫎锛夋寚浠�" + (result ? "鎴愬姛" : "澶辫触") + "鍘熷洜锛�" + msg); + _SdaResEntity.result = result; + _SdaResEntity.resMsg = msg; + return _SdaResEntity; + } + catch (Exception ex) + { + _SdaResEntity.result = false; + _SdaResEntity.resMsg = ex.Message; + return _SdaResEntity; + } + } + + public SdaResEntity DeleteStationTask(int deviceId, int taskId) + { + SdaResEntity sdaResult = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + string msg = ""; + var result = Station.DeleteTask(deviceId, taskId, out msg); + Log4NetHelper.WriteInfoLog(LogType.StationSdaService, "涓嬪彂deviceId = " + deviceId + "鐨勫垹闄tation浠诲姟鎸囦护" + (result ? "鎴愬姛" : "澶辫触") + "鍘熷洜锛�" + msg); + sdaResult.result = result; + sdaResult.resMsg = msg; + return sdaResult; + } + catch (Exception ex) + { + sdaResult.result = false; + sdaResult.resMsg = JsonConvert.SerializeObject(ex); + return sdaResult; + } + } + + ///// <summary> + ///// Station鎬ュ仠 + ///// </summary> + ///// <param name="deviceId"></param> + ///// <returns></returns> + //public SdaResEntity EmergencyStop(int deviceId) + //{ + // SdaResEntity sdaResult = new SdaResEntity(); + // try + // { + // var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + // if (!StationResult.result) + // { + // return StationResult; + // } + // var Station = StationResult.resData as StationEntity; + + // string msg = ""; + // var result = Station.EmergencyStop(deviceId, out msg); + // Log4NetHelper.WriteInfoLog(LogType.StationSdaService, "涓嬪彂deviceId = " + deviceId + "鐨勬�ュ仠浠诲姟鎸囦护" + (result ? "鎴愬姛" : "澶辫触") + "鍘熷洜锛�" + msg); + // sdaResult.result = result; + // sdaResult.resMsg = msg; + // return sdaResult; + // } + // catch (Exception ex) + // { + // sdaResult.result = false; + // sdaResult.resMsg = JsonConvert.SerializeObject(ex); + // return sdaResult; + // } + //} + + /// <summary> + /// 鑾峰彇鏁翠釜Station瀵硅薄 + /// </summary> + /// <param name="deviceId"></param> + /// <returns></returns> + public StationView GetStationInfo(int deviceId) + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return null; + } + var Station = (StationResult.resData as StationEntity).View; + return Station; + } + + + /// <summary> + /// Station浠诲姟鏄惁瀹屾垚 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="taskId"></param> + /// <returns></returns> + public SdaResEntity IsTaskFinish(int deviceId, int taskId) + { + SdaResEntity sdaResult = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + var stationCode = ""; + var readData = Station.View.R_StationForReadCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); + + sdaResult.result = readData.R_TaskID == taskId && Station.View.R_Station_Finish; + sdaResult.resMsg = "鎴愬姛"; + } + catch (Exception ex) + { + sdaResult.result = false; + sdaResult.resMsg = JsonConvert.SerializeObject(ex); + return sdaResult; + } + return sdaResult; + } + + + + + /// <summary> + /// Station鏄惁鏄嚜鍔ㄦā寮� + /// </summary> + /// <returns></returns> + public SdaResEntity IsStationAuto(int deviceId, string stationCode) + { + SdaResEntity sdaResult = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + var msg = ""; + var result = Station.StationIsAuto(stationCode, out msg); + if (!StationResult.result) + { + sdaResult.result = false; + sdaResult.resMsg = msg; + return StationResult; + } + + + sdaResult.result = true; + + } + catch (Exception ex) + { + sdaResult.result = false; + sdaResult.resMsg = JsonConvert.SerializeObject(ex); + Log4NetHelper.WriteErrorLog(LogType.StationSdaService, "鍒ゆ柇Station鏄惁鏄嚜鍔ㄦā寮忓嚭鐜板紓甯�,ex:" + JsonConvert.SerializeObject(ex), ex); + } + return sdaResult; + } + + /// <summary> + /// Station鏄惁鏄嚜鍔ㄥ緟鏈烘ā寮� + /// </summary> + /// <returns></returns> + public SdaResEntity StationIsAutoAwaitMode(int deviceId, string stationCode) + { + SdaResEntity sdaResult = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + var msg = ""; + var result = Station.StationIsAutoAwaitMode(stationCode, out msg); + if (!StationResult.result) + { + sdaResult.result = false; + sdaResult.resMsg = msg; + return StationResult; + } + + + sdaResult.result = true; + + } + catch (Exception ex) + { + sdaResult.result = false; + sdaResult.resMsg = JsonConvert.SerializeObject(ex); + Log4NetHelper.WriteErrorLog(LogType.StationSdaService, "鍒ゆ柇Station鏄惁鏄嚜鍔ㄥ緟鏈烘ā寮忓嚭鐜板紓甯�,ex:" + JsonConvert.SerializeObject(ex), ex); + } + return sdaResult; + } + + + /// <summary> + /// 鍒ゆ柇Station鏄惁鍙敤锛屾槸鍚﹀彲浠ュ彂閫佹柊浠诲姟缁橲tation + /// </summary> + /// <param name="deviceId"></param> + /// <param name="sourceStationCode"></param> + /// <param name="toStationCode"></param> + /// <param name="isStationTask">鏄惁鏄秹鍙婂埌Station鐨勪换鍔�</param> + /// <returns></returns> + public SdaResEntity IsAllowSendTask(bool isNeedValidateRealSourceAndToPlace, int deviceId, string sourceStationCode, string toStationCode, bool isStationTask) + { + var msg = ""; + SdaResEntity sdaResult = new SdaResEntity(); + try + { + + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + var result = false; + if (isNeedValidateRealSourceAndToPlace) + { + //鍒ゆ柇璧风偣鏄惁鏄嚜鍔ㄥ緟鏈烘ā寮� + result = Station.StationIsAutoAwaitMode(sourceStationCode, out msg); + if (!result) + { + sdaResult.result = false; + sdaResult.resMsg = msg; + return sdaResult; + } + //鍒ゆ柇璧风偣鏄惁鏄┖闂茬姸鎬� + result = Station.StationIsStateFree(sourceStationCode, out msg); + if (!result) + { + sdaResult.result = false; + sdaResult.resMsg = msg; + return sdaResult; + } + } + + + if (isNeedValidateRealSourceAndToPlace) + { + //鍒ゆ柇鐩爣鐐规槸鍚︽槸鑷姩妯″紡 + result = Station.StationIsAuto(toStationCode, out msg); + if (!result) + { + sdaResult.result = false; + sdaResult.resMsg = msg; + return sdaResult; + } + } + + sdaResult.result = true; + return sdaResult; + } + catch (Exception ex) + { + sdaResult.result = false; + sdaResult.resMsg = "鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex); + return sdaResult; + } + } + + + /// <summary> + /// 鍒ゆ柇鏄惁鏈夊績璺� + /// </summary> + /// <param name="deviceId"></param> + /// <returns></returns> + public SdaResEntity IsHaveHeatBeat(int deviceId) + { + SdaResEntity sdaResult = new SdaResEntity(); + string msg; + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + var result = Station.IsHaveHeatBeat(); + + sdaResult.result = true; + sdaResult.resData = result; + return sdaResult; + + } + catch (Exception ex) + { + msg = "楠岃瘉鏄惁鏈夊績璺冲嚭鐜板紓甯�:" + ex.Message; + sdaResult.result = false; + sdaResult.resMsg = msg; + return sdaResult; + } + } + + + /// <summary> + /// 1015閲嶆柊鎵爜 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <returns></returns> + public SdaResEntity Write1015ReScan(int deviceId, bool value) + { + SdaResEntity _SdaResEntity = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + string msg = ""; + var result = Station.Write1015ReScan(deviceId, value, out msg); + _SdaResEntity.result = result; + _SdaResEntity.resMsg = msg; + return _SdaResEntity; + } + catch (Exception ex) + { + _SdaResEntity.result = false; + _SdaResEntity.resMsg = ex.Message; + return _SdaResEntity; + } + } + + /// <summary> + /// 1019閲嶆柊鎵爜 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <returns></returns> + public SdaResEntity Write1019ReScan(int deviceId, bool value) + { + SdaResEntity _SdaResEntity = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + string msg = ""; + var result = Station.Write1019ReScan(deviceId, value, out msg); + _SdaResEntity.result = result; + _SdaResEntity.resMsg = msg; + return _SdaResEntity; + } + catch (Exception ex) + { + _SdaResEntity.result = false; + _SdaResEntity.resMsg = ex.Message; + return _SdaResEntity; + } + } + + /// <summary> + /// Station鐨勪换鍔″畬鎴怉CK璧嬪�� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <returns></returns> + public SdaResEntity WriteStation_FinishACK(int deviceId, bool value, int plcTaskId) + { + SdaResEntity _SdaResEntity = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + string msg = ""; + var result = Station.WriteStation_FinishACK(deviceId, value, plcTaskId, out msg); + _SdaResEntity.result = result; + _SdaResEntity.resMsg = msg; + return _SdaResEntity; + } + catch (Exception ex) + { + _SdaResEntity.result = false; + _SdaResEntity.resMsg = ex.Message; + return _SdaResEntity; + } + } + + + /// <summary> + /// 鍥涗釜鍏ュ簱鍙f壂鎻忛獙璇丄CK璧嬪�� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value"></param> + /// <returns></returns> + public SdaResEntity WriteScanValidateACK(bool isReset, int deviceId, string stationCode, bool value, int plcTaskId) + { + SdaResEntity _SdaResEntity = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + string msg = ""; + var result = Station.WriteScanValidateACK(isReset, deviceId, stationCode, value, plcTaskId, out msg); + _SdaResEntity.result = result; + _SdaResEntity.resMsg = msg; + return _SdaResEntity; + } + catch (Exception ex) + { + _SdaResEntity.result = false; + _SdaResEntity.resMsg = ex.Message; + return _SdaResEntity; + } + } + + /// <summary> + /// 鍙戝姩鏈哄嚭搴擄紝缁欒タ娓疨LC鍙戦�佸彂鍔ㄦ満鏁版嵁 銆怑ditby shaocx,2023-07-23銆� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="value__Out_MaterialModel"></param> + /// <param name="value_Out_OrderNo"></param> + /// <param name="value_Out_SerialNumber"></param> + /// <param name="plcTaskId"></param> + /// <returns></returns> + public SdaResEntity WriteStation_XigangGetDataForOut(int deviceId, string value__Out_MaterialModel, + string value_Out_OrderNo, + string value_Out_SerialNumber, + int plcTaskId) + { + SdaResEntity _SdaResEntity = new SdaResEntity(); + try + { + var StationResult = Station_CacheEntity.GetDeviceObj(deviceId); + if (!StationResult.result) + { + return StationResult; + } + var Station = StationResult.resData as StationEntity; + + string msg = ""; + var result = Station.WriteStation_XigangGetDataForOut(deviceId, value__Out_MaterialModel, value_Out_OrderNo, value_Out_SerialNumber, plcTaskId, out msg); + _SdaResEntity.result = result; + _SdaResEntity.resMsg = msg; + return _SdaResEntity; + } + catch (Exception ex) + { + _SdaResEntity.result = false; + _SdaResEntity.resMsg = ex.Message; + return _SdaResEntity; + } + } + } +} -- Gitblit v1.9.3