private static void GetDicPLCData() { try { uint str; RowDataPoint point = null; string openstr = "OK"; object readobj = null; RowDataPoint eqp = null; foreach (var adapter in DicStatus) { point = adapter.Value; if (point != null) { Plc plc = OEMPLC.CreatePLC(CpuType.S7300, adapter.Key, 0, 2); //new Plc(CpuType.S7300, "10.21.189.139", 0, 2); try { openstr = plc.QMOpen(); if (openstr == "OK") { try { readobj = plc.QMRead((DataType)point.datatype, point.dbNumber, point.startByte, (VarType)point.vartype, 1); // str = (UInt32)plc.QMRead((DataType)eqp.datatype, eqp.dbNumber, eqp.startByte, (VarType)eqp.vartype, 1); if (readobj != null) { str = Convert.ToUInt16(readobj); Console.WriteLine("OEM PLC Data " + adapter.Key + " " + str); DicReal[adapter.Key] = str; } } catch (Exception ex) { Log.Error(ex.ToString()); } } else { DicReal[adapter.Key] = uint.MaxValue; Log.Error("[PLC][Link Fail] IP Address is : " + eqp.IP); Log.Error(openstr); } // throw new InvalidAddressException("To few periods for DB address"); plc.Close(); } catch (Exception ex) { Log.Error(ex.ToString()); } } } } catch (Exception ex) { Log.Error(ex.ToString()); } }
public static void Init() { RealData.Clear(); LDData.Clear(); OEMPoint.Clear(); DicStatus.Clear(); DicReal.Clear(); DicReal.Add(IP1, uint.MaxValue); DicReal.Add(IP2, uint.MaxValue); RowDataPoint A = new RowDataPoint(); A.IP = IP1; A.TagID = IP2; A.datatype = 132; A.dbNumber = 700; A.startByte = 4; A.bitNumber = -1; A.vartype = 3; DicStatus.Add(IP1, A); RowDataPoint B = new RowDataPoint(); B.IP = IP2; B.TagID = IP2; B.datatype = 132; B.dbNumber = 700; B.startByte = 4; B.bitNumber = -1; B.vartype = 3; DicStatus.Add(IP2, B); LDData.Add(IP1, uint.MaxValue); LDData.Add(IP2, uint.MaxValue); RealData.Add(Tailback1, UInt16.MaxValue); RealData.Add(Red1, UInt16.MaxValue); RealData.Add(Green1, UInt16.MaxValue); RealData.Add(Blue1, UInt16.MaxValue); RealData.Add(Amber1, UInt16.MaxValue); RealData.Add(Tailback2, UInt16.MaxValue); RealData.Add(Red2, UInt16.MaxValue); RealData.Add(Green2, UInt16.MaxValue); RealData.Add(Blue2, UInt16.MaxValue); RealData.Add(Amber2, UInt16.MaxValue); ArrayList list1 = new ArrayList(); RowDataPoint point = new RowDataPoint(); point.IP = IP1; point.TagID = Tailback1; point.datatype = 131; point.dbNumber = 0; point.startByte = 200; point.bitNumber = 0; point.vartype = 1; list1.Add(point); RowDataPoint red1 = new RowDataPoint(); red1.IP = IP1; red1.TagID = Red1; red1.datatype = 130; red1.dbNumber = 0; red1.startByte = 12; red1.bitNumber = 3; red1.vartype = 0; list1.Add(red1); RowDataPoint green1 = new RowDataPoint(); green1.IP = IP1; green1.TagID = Green1; green1.datatype = 130; green1.dbNumber = 0; green1.startByte = 12; green1.bitNumber = 5; green1.vartype = 0; list1.Add(green1); RowDataPoint blue1 = new RowDataPoint(); blue1.IP = IP1; blue1.TagID = Blue1; blue1.datatype = 130; blue1.dbNumber = 0; blue1.startByte = 12; blue1.bitNumber = 6; blue1.vartype = 0; list1.Add(blue1); RowDataPoint armber1 = new RowDataPoint(); armber1.IP = IP1; armber1.TagID = Amber1; armber1.datatype = 130; armber1.dbNumber = 0; armber1.startByte = 12; armber1.bitNumber = 4; armber1.vartype = 0; list1.Add(armber1); ArrayList list2 = new ArrayList(); RowDataPoint point2 = new RowDataPoint(); point2.IP = IP2; point2.TagID = Tailback2; point2.datatype = 131; point2.dbNumber = 0; point2.startByte = 200; point2.bitNumber = 0; point2.vartype = 1; list2.Add(point2); RowDataPoint red2 = new RowDataPoint(); red2.IP = IP2; red2.TagID = Red2; red2.datatype = 130; red2.dbNumber = 0; red2.startByte = 12; red2.bitNumber = 3; red2.vartype = 0; list2.Add(red2); RowDataPoint green2 = new RowDataPoint(); green2.IP = IP2; green2.TagID = Green2; green2.datatype = 130; green2.dbNumber = 0; green2.startByte = 12; green2.bitNumber = 5; green2.vartype = 0; list2.Add(green2); RowDataPoint blue2 = new RowDataPoint(); blue2.IP = IP2; blue2.TagID = Blue2; blue2.datatype = 130; blue2.dbNumber = 0; blue2.startByte = 12; blue2.bitNumber = 6; blue2.vartype = 0; list2.Add(blue2); RowDataPoint armber2 = new RowDataPoint(); armber2.IP = IP2; armber2.TagID = Amber2; armber2.datatype = 130; armber2.dbNumber = 0; armber2.startByte = 12; armber2.bitNumber = 4; armber2.vartype = 0; list2.Add(armber2); OEMPoint.Add(IP1, list1); OEMPoint.Add(IP2, list2); }
private static void GetPLCData() { try { uint str; ArrayList list = null; string openstr = "OK"; object readobj = null; RowDataPoint eqp = null; foreach (var adapter in OEMPoint) { list = adapter.Value; if (list != null) { Plc plc = OEMPLC.CreatePLC(CpuType.S7300, adapter.Key, 0, 2); //new Plc(CpuType.S7300, "10.21.189.139", 0, 2); try { openstr = plc.QMOpen(); if (openstr == "OK") { foreach (var V in list) { eqp = (RowDataPoint)V; try { readobj = plc.QMRead((DataType)eqp.datatype, eqp.dbNumber, eqp.startByte, (VarType)eqp.vartype, 1); // str = (UInt32)plc.QMRead((DataType)eqp.datatype, eqp.dbNumber, eqp.startByte, (VarType)eqp.vartype, 1); if (readobj != null) { str = Convert.ToUInt16(readobj); Console.WriteLine(eqp.TagID + " OEM Value is: " + str); Log.Info("[OEM]" + eqp.TagID + " " + str); } } catch (Exception ex) { Log.Error(ex.ToString()); } } } else { if (adapter.Key == IP1) { SetOEM1EX(); } else { SetOEM2EX(); } Log.Error("[PLC][Link Fail] IP Address is : " + eqp.IP); Log.Error(openstr); } // throw new InvalidAddressException("To few periods for DB address"); plc.Close(); } catch (Exception ex) { Log.Error(ex.ToString()); } } } } catch (Exception ex) { Log.Error(ex.ToString()); } }