private void timer1_Tick(object sender, EventArgs e) { try { if (myConn != null) { int wrt = progressBar1.Value + 33; if (wrt >= 100) { progressBar1.Value = 0; } else { progressBar1.Value = wrt; } myConn.ReadValues(getListVal()); int i = 0; foreach (var akVal in myValues) { if (akVal.LibNoDaveValue != null) { dataGridViewVarTab.Rows[i].Cells[3].Value = akVal.LibNoDaveValue.GetValueAsString(); } i++; } } } catch (Exception ex) { errtxt.Text = ex.Message; } }
public void TestReading3() { var wrapper = new ConnectionWrapper(480); var conn = new PLCConnection(new PLCConnectionConfiguration(), wrapper); var listTag = new List <PLCTag>(); listTag.Add(new PLCTag("DB781.DBX5.0")); listTag.Add(new PLCTag("DB781.DBX7.0")); listTag.Add(new PLCTag("DB781.DBX9.0")); listTag.Add(new PLCTag("DB781.DBX11.0")); listTag.Add(new PLCTag("DB781.DBX13.0")); listTag.Add(new PLCTag("DB781.DBX4.2")); listTag.Add(new PLCTag("DB781.DBX6.2")); listTag.Add(new PLCTag("DB781.DBX8.2")); listTag.Add(new PLCTag("DB781.DBX10.2")); listTag.Add(new PLCTag("DB781.DBX12.2")); listTag.Add(new PLCTag("DB781.DBX3.1")); listTag.Add(new PLCTag("DB781.DBX5.1")); listTag.Add(new PLCTag("DB781.DBX7.1")); listTag.Add(new PLCTag("DB781.DBX9.1")); listTag.Add(new PLCTag("DB781.DBX11.1")); listTag.Add(new PLCTag("DB781.DBX13.1")); conn.ReadValues(listTag, true); var pdus = wrapper.PDUs; string req = string.Join(Environment.NewLine, pdus); string t = "READ Area:132, DBnum:781, Start:3, Bytes:11"; Assert.AreEqual(req, t); }
public void TestReading2() { var wrapper = new ConnectionWrapper(480); var conn = new PLCConnection(new PLCConnectionConfiguration(), wrapper); var listTag = new List <PLCTag>(); listTag.Add(new PLCTag("DB2.DBB0")); listTag.Add(new PLCTag("DB2.DBB1")); listTag.Add(new PLCTag("DB2.DBB2")); conn.ReadValues(listTag, true); var pdus = wrapper.PDUs; string req = string.Join(Environment.NewLine, pdus); string t = "READ Area:132, DBnum:2, Start:0, Bytes:3"; Assert.AreEqual(req, t); }
private void ReadPlcTagsFromConnection(PLCConnection conn) { var values = from rw in varTabRows where rw.Connection == conn && rw.LibNoDaveValue != null select rw.LibNoDaveValue; if (ReadTagsConfig == 0) { conn.ReadValues(values); } else { var rq = conn.ReadValuesWithVarTabFunctions(values, (PLCTriggerVarTab)ReadTagsConfig + 1); rq.RequestData(); } }
private static void ReadFromNck(string ipAddress = "192.168.214.1") { using (var con = new PLCConnection("ReadFromNck")) { con.Configuration.CpuIP = ipAddress; con.Configuration.CpuSlot = 4; con.Connect(); try { if (!con.Connected) { con.Connect(); } #region Channel 1 R[0] var R0 = con.ReadValue(new NC_Var(0x82, 0x41, 0x1, 0x1, 0x15, 0x1, 0xF, 0x8)); Console.WriteLine("R0: {0}", R0); #endregion #region List of R-Parameter var rpa = new NC_Var(0x82, 0x40, 0x1, 0x0, 0x15, 0x1, 0xF, 0x8); var tags = new List <PLCNckTag>(); int channel = 1; for (int i = 1; i < 10; i++) { tags.Add(rpa.GetNckTag(channel, i)); tags.Last().Tag = string.Format("R[{0}]", i - 1); } con.ReadValues(tags); tags.ForEach(f => Console.WriteLine("{0}: {1}", f.Tag, f.Value)); #endregion } catch (Exception ex) { System.Diagnostics.Debugger.Break(); } } }
private void timer1_Tick(object sender, EventArgs e) { try { myConn.ReadValues(myValues); listBox1.Items.Clear(); listBox1.Items.AddRange(myValues.ToArray()); cnt++; label1.Text = cnt.ToString(); if (var1.SelectedItem != null && var1.SelectedItem.ToString() != "(none)") { chart1.Series["Series1"].Points.Clear(); var tmp = (PLCTag)var1.SelectedItem; foreach (var oldValue in tmp.OldValues) { double wrt = (float)Convert.ToDouble(oldValue); chart1.Series["Series1"].Points.AddY(wrt); } } if (var2.SelectedItem != null && var2.SelectedItem.ToString() != "(none)") { chart1.Series["Series2"].Points.Clear(); var tmp = (PLCTag)var2.SelectedItem; foreach (var oldValue in tmp.OldValues) { double wrt = (float)Convert.ToDouble(oldValue); chart1.Series["Series2"].Points.AddY(wrt); } } } catch (Exception ex) { label2.Text = ex.Message; } }
public void TestReading7() { var wrapper = new ConnectionWrapperResult((nr, r) => { r[0] = 0; r[1] = 5; r[2] = 0; r[3] = 1; r[4] = 0; r[5] = 1; }); var conn = new PLCConnection(new PLCConnectionConfiguration(), wrapper); var listTag = new List <PLCTag>(); listTag.Add(new PLCTag("DB781.DBX0.2")); listTag.Add(new PLCTag("DB781.DBX1.0")); listTag.Add(new PLCTag("DB781.DBX1.0")); listTag.Add(new PLCTag("DB781.DBX1.0")); listTag.Add(new PLCTag("DB781.DBX1.2")); listTag.Add(new PLCTag("DB781.DBX1.2")); listTag.Add(new PLCTag("DB781.DBX1.2")); listTag.Add(new PLCTag("DB781.DBX2.2")); listTag.Add(new PLCTag("DB781.DBX3.0")); listTag.Add(new PLCTag("DB781.DBX3.2")); listTag.Add(new PLCTag("DB781.DBX4.2")); listTag.Add(new PLCTag("DB781.DBX5.0")); listTag.Add(new PLCTag("DB781.DBX5.0")); listTag.Add(new PLCTag("DB781.DBX5.0")); listTag.Add(new PLCTag("DB781.DBX5.2")); conn.ReadValues(listTag, true); var pdus = wrapper.PDUs; string req = string.Join(Environment.NewLine, pdus); string t = "READ Area:132, DBnum:781, Start:0, Bytes:6"; Assert.AreEqual(req, t); }
public static IEnumerable <object> ReadDataFromDataSources(DatasetConfig datasetConfig, IEnumerable <DatasetConfigRow> datasetConfigRows, Dictionary <ConnectionConfig, Object> activConnections, bool StartedAsService) { var usedConnections = from n in datasetConfigRows group n by n.Connection into g //Es wird in das Object g hineingruppiert. select new { Connection = g.Key }; //n.Connection ist dann g.Key, g ist eine ganze Zeile foreach (var usedConnection in usedConnections) { var tags = from n in datasetConfigRows where n.Connection == usedConnection.Connection select n.PLCTag; if (usedConnection.Connection.GetType() == typeof(DatabaseConfig)) { //Read Data from a Database var dbConn = (DatabaseConnection)activConnections[usedConnection.Connection]; var dta = dbConn.ReadData(); try { foreach (var plcTag in tags) { plcTag.Value = dta[plcTag.ValueName]; } } finally { dta.Close(); } } else if (usedConnection.Connection.GetType() == typeof(LibNoDaveConfig)) { PLCConnection plcConn = (PLCConnection)activConnections[usedConnection.Connection]; if (!plcConn.Connected) { plcConn.Connect(); } if (plcConn.Connected) { try { plcConn.ReadValues(tags); } catch (Exception ex) { if (StartedAsService) { Logging.LogText("Error: Exception during ReadData, maybe Connection interupted?", ex, Logging.LogLevel.Error); return(null); } throw; } foreach (var plcTag in tags) { if (plcTag.ItemDoesNotExist) { if (StartedAsService) { Logging.LogText("Tag does not Exist! " + plcConn.Configuration.ConnectionName + ": " + plcTag.S7FormatAddress, Logging.LogLevel.Error); } else { throw new Exception("Tag does not Exist! " + plcConn.Configuration.ConnectionName + ": " + plcTag.S7FormatAddress); } } } if (usedConnection.Connection is LibNoDaveConfig) { if (!((LibNoDaveConfig)usedConnection.Connection).StayConnected) { plcConn.Disconnect(); } } } else { Logging.LogText("Error: Read Data returned \"null\" maybe a Connection is offline?", Logging.LogLevel.Error); return(null); } } } List <object> retVal = new List <object>(); foreach (var datasetConfigRow in datasetConfigRows) { retVal.Add(datasetConfigRow.Value(datasetConfig.UseFloatIfMultiplierIsUsed)); } return(retVal); }
public void TestReading() { var wrapper = new ConnectionWrapper(480); var conn = new PLCConnection(new PLCConnectionConfiguration(), wrapper); var listTag = new List <PLCTag>(); listTag.Add(new PLCTag("P#DB60.DBX0 BYTE 300")); listTag.Add(new PLCTag("P#DB10.DBX10 BYTE 300")); conn.ReadValues(listTag, true); var pdus = wrapper.PDUs; string req = string.Join(Environment.NewLine, pdus); string t = @"READ Area:132, DBnum:10, Start:10, Bytes:300 READ Area:132, DBnum:60, Start:0, Bytes:300"; Assert.AreEqual(req.Replace("\r\n", "\n"), t.Replace("\r\n", "\n")); //var wrapper2 = new ConnectionWrapper(480); //var conn2 = new PLCConnection(new PLCConnectionConfiguration(), wrapper2); //var listTag2 = new List<PLCTag>(); //listTag2.Add(new PLCTag("P#DB60.DBX0 BYTE 300")); //listTag2.Add(new PLCTag("P#DB10.DBX10 BYTE 300")); //conn2._TestNewReadValues(listTag2, true); //var pdus2 = wrapper2.PDUs; //string req2 = string.Join(Environment.NewLine, pdus2); //string t2 = "READ Area:132, DBnum:10, Start:10, Bytes:300\r\nREAD Area:132, DBnum:60, Start:0, Bytes:300"; //Assert.AreEqual(req2, t2); var wrapper3 = new ConnectionWrapper(480); var conn3 = new PLCConnection(new PLCConnectionConfiguration(), wrapper3); var listTag3 = new List <PLCTag>(); listTag3.Add(new PLCTag("P#DB60.DBX0 BYTE 300") { DontSplitValue = false }); listTag3.Add(new PLCTag("P#DB10.DBX10 BYTE 300") { DontSplitValue = false }); conn3.ReadValues(listTag3, true); var pdus3 = wrapper3.PDUs; string req3 = string.Join(Environment.NewLine, pdus3); string t3 = "READ Area:132, DBnum:10, Start:10, Bytes:300\r\nREAD Area:132, DBnum:60, Start:0, Bytes:140\r\nREAD Area:132, DBnum:60, Start:140, Bytes:160"; Assert.AreEqual(req3.Replace("\r\n", "\n"), t3.Replace("\r\n", "\n")); var wrapper4 = new ConnectionWrapper(480); var conn4 = new PLCConnection(new PLCConnectionConfiguration(), wrapper4); var listTag4 = new List <PLCTag>(); listTag4.Add(new PLCTag("P#DB1.DBX0 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX8 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX10 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX30 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX50 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX80 BYTE 4") { DontSplitValue = false }); conn4.ReadValues(listTag4, true); var pdus4 = wrapper4.PDUs; string req4 = string.Join(Environment.NewLine, pdus4); string t4 = "READ Area:132, DBnum:1, Start:0, Bytes:14\r\nREAD Area:132, DBnum:1, Start:30, Bytes:4\r\nREAD Area:132, DBnum:1, Start:50, Bytes:4\r\nREAD Area:132, DBnum:1, Start:80, Bytes:4"; Assert.AreEqual(req4.Replace("\r\n", "\n"), t4.Replace("\r\n", "\n")); var wrapper5 = new ConnectionWrapper(240); var conn5 = new PLCConnection(new PLCConnectionConfiguration(), wrapper5); var listTag5 = new List <PLCTag>(); listTag5.Add(new PLCTag("P#DB1.DBX0 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX8 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX10 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX30 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX50 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX80 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX90 BYTE 30") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX100 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX140 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX160 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX180 BYTE 44") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX230 BYTE 20") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX240 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX250 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX260 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX270 BYTE 4") { DontSplitValue = false }); conn5.ReadValues(listTag5, true); var pdus5 = wrapper5.PDUs; string req5 = string.Join(Environment.NewLine, pdus5); string t5 = "READ Area:132, DBnum:1, Start:0, Bytes:14\r\nREAD Area:132, DBnum:1, Start:30, Bytes:4\r\nREAD Area:132, DBnum:1, Start:50, Bytes:4\r\nREAD Area:132, DBnum:1, Start:80, Bytes:4\r\nREAD Area:132, DBnum:1, Start:90, Bytes:30\r\nREAD Area:132, DBnum:1, Start:140, Bytes:4\r\nREAD Area:132, DBnum:1, Start:160, Bytes:4\r\nREAD Area:132, DBnum:1, Start:180, Bytes:44\r\nREAD Area:132, DBnum:1, Start:230, Bytes:24\r\nREAD Area:132, DBnum:1, Start:260, Bytes:4\r\nREAD Area:132, DBnum:1, Start:270, Bytes:4"; Assert.AreEqual(req5.Replace("\r\n", "\n"), t5.Replace("\r\n", "\n")); //var tag=new PLCNckTag() { TagDataType = TagDataType.Float, NckArea = 0xa, NckUnit = 0x8,NckColumn = 0x23, NckLine = 0x1,NckModule = 0x1a,NckLinecount = 0x1}; }
private void ReadPlcTagsFromConnection(PLCConnection conn) { var values = from rw in varTabRows where rw.Connection == conn && rw.LibNoDaveValue != null select rw.LibNoDaveValue; if (ReadTagsConfig == 0) conn.ReadValues(values); else { var rq = conn.ReadValuesWithVarTabFunctions(values, (PLCTriggerVarTab) ReadTagsConfig + 1); rq.RequestData(); } }
public void TestReading() { var wrapper = new ConnectionWrapper(480); var conn = new PLCConnection(new PLCConnectionConfiguration(), wrapper); var listTag = new List <PLCTag>(); listTag.Add(new PLCTag("P#DB60.DBX0 BYTE 300")); listTag.Add(new PLCTag("P#DB10.DBX10 BYTE 300")); conn.ReadValues(listTag, true); var pdus = wrapper.PDUs; string req = string.Join(Environment.NewLine, pdus); string t = @"READ Area:132, DBnum:10, Start:10, Bytes:300 READ Area:132, DBnum:60, Start:0, Bytes:300"; Assert.AreEqual(req, t); var wrapper2 = new ConnectionWrapper(480); var conn2 = new PLCConnection(new PLCConnectionConfiguration(), wrapper2); var listTag2 = new List <PLCTag>(); listTag2.Add(new PLCTag("P#DB60.DBX0 BYTE 300")); listTag2.Add(new PLCTag("P#DB10.DBX10 BYTE 300")); conn2._TestNewReadValues(listTag2, true); var pdus2 = wrapper2.PDUs; string req2 = string.Join(Environment.NewLine, pdus2); string t2 = "READ Area:132, DBnum:10, Start:10, Bytes:300\r\nREAD Area:132, DBnum:60, Start:0, Bytes:300"; Assert.AreEqual(req2, t2); var wrapper3 = new ConnectionWrapper(480); var conn3 = new PLCConnection(new PLCConnectionConfiguration(), wrapper3); var listTag3 = new List <PLCTag>(); listTag3.Add(new PLCTag("P#DB60.DBX0 BYTE 300") { DontSplitValue = false }); listTag3.Add(new PLCTag("P#DB10.DBX10 BYTE 300") { DontSplitValue = false }); conn3.ReadValues(listTag3, true); var pdus3 = wrapper3.PDUs; string req3 = string.Join(Environment.NewLine, pdus3); string t3 = "READ Area:132, DBnum:10, Start:10, Bytes:300\r\nREAD Area:132, DBnum:60, Start:0, Bytes:140\r\nREAD Area:132, DBnum:60, Start:140, Bytes:160"; Assert.AreEqual(req3, t3); var wrapper4 = new ConnectionWrapper(480); var conn4 = new PLCConnection(new PLCConnectionConfiguration(), wrapper4); var listTag4 = new List <PLCTag>(); listTag4.Add(new PLCTag("P#DB1.DBX0 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX8 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX10 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX30 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX50 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX80 BYTE 4") { DontSplitValue = false }); conn4.ReadValues(listTag4, true); var pdus4 = wrapper4.PDUs; string req4 = string.Join(Environment.NewLine, pdus4); string t4 = "READ Area:132, DBnum:1, Start:0, Bytes:14\r\nREAD Area:132, DBnum:1, Start:30, Bytes:4\r\nREAD Area:132, DBnum:1, Start:50, Bytes:4\r\nREAD Area:132, DBnum:1, Start:80, Bytes:4"; Assert.AreEqual(req4, t4); var wrapper5 = new ConnectionWrapper(240); var conn5 = new PLCConnection(new PLCConnectionConfiguration(), wrapper5); var listTag5 = new List <PLCTag>(); listTag5.Add(new PLCTag("P#DB1.DBX0 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX8 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX10 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX30 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX50 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX80 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX90 BYTE 30") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX100 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX140 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX160 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX180 BYTE 44") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX230 BYTE 20") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX240 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX250 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX260 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX270 BYTE 4") { DontSplitValue = false }); conn5.ReadValues(listTag5, true); var pdus5 = wrapper5.PDUs; string req5 = string.Join(Environment.NewLine, pdus5); string t5 = "READ Area:132, DBnum:1, Start:0, Bytes:14\r\nREAD Area:132, DBnum:1, Start:30, Bytes:4\r\nREAD Area:132, DBnum:1, Start:50, Bytes:4\r\nREAD Area:132, DBnum:1, Start:80, Bytes:4\r\nREAD Area:132, DBnum:1, Start:90, Bytes:30\r\nREAD Area:132, DBnum:1, Start:140, Bytes:4\r\nREAD Area:132, DBnum:1, Start:160, Bytes:4\r\nREAD Area:132, DBnum:1, Start:180, Bytes:44\r\nREAD Area:132, DBnum:1, Start:230, Bytes:24\r\nREAD Area:132, DBnum:1, Start:260, Bytes:4\r\nREAD Area:132, DBnum:1, Start:270, Bytes:4"; Assert.AreEqual(req5, t5); }
public void TestReading() { var wrapper = new ConnectionWrapper(480); var conn = new PLCConnection(new PLCConnectionConfiguration(), wrapper); var listTag = new List<PLCTag>(); listTag.Add(new PLCTag("P#DB60.DBX0 BYTE 300")); listTag.Add(new PLCTag("P#DB10.DBX10 BYTE 300")); conn.ReadValues(listTag, true); var pdus = wrapper.PDUs; string req = string.Join(Environment.NewLine, pdus); string t = @"READ Area:132, DBnum:10, Start:10, Bytes:300 READ Area:132, DBnum:60, Start:0, Bytes:300"; Assert.AreEqual(req, t); var wrapper2 = new ConnectionWrapper(480); var conn2 = new PLCConnection(new PLCConnectionConfiguration(), wrapper2); var listTag2 = new List<PLCTag>(); listTag2.Add(new PLCTag("P#DB60.DBX0 BYTE 300")); listTag2.Add(new PLCTag("P#DB10.DBX10 BYTE 300")); conn2._TestNewReadValues(listTag2, true); var pdus2 = wrapper2.PDUs; string req2 = string.Join(Environment.NewLine, pdus2); string t2 = "READ Area:132, DBnum:10, Start:10, Bytes:300\r\nREAD Area:132, DBnum:60, Start:0, Bytes:300"; Assert.AreEqual(req2, t2); var wrapper3 = new ConnectionWrapper(480); var conn3 = new PLCConnection(new PLCConnectionConfiguration(), wrapper3); var listTag3 = new List<PLCTag>(); listTag3.Add(new PLCTag("P#DB60.DBX0 BYTE 300") { DontSplitValue = false }); listTag3.Add(new PLCTag("P#DB10.DBX10 BYTE 300") { DontSplitValue = false }); conn3.ReadValues(listTag3, true); var pdus3 = wrapper3.PDUs; string req3 = string.Join(Environment.NewLine, pdus3); string t3 = "READ Area:132, DBnum:10, Start:10, Bytes:300\r\nREAD Area:132, DBnum:60, Start:0, Bytes:140\r\nREAD Area:132, DBnum:60, Start:140, Bytes:160"; Assert.AreEqual(req3, t3); var wrapper4 = new ConnectionWrapper(480); var conn4 = new PLCConnection(new PLCConnectionConfiguration(), wrapper4); var listTag4 = new List<PLCTag>(); listTag4.Add(new PLCTag("P#DB1.DBX0 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX8 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX10 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX30 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX50 BYTE 4") { DontSplitValue = false }); listTag4.Add(new PLCTag("P#DB1.DBX80 BYTE 4") { DontSplitValue = false }); conn4.ReadValues(listTag4, true); var pdus4 = wrapper4.PDUs; string req4 = string.Join(Environment.NewLine, pdus4); string t4 = "READ Area:132, DBnum:1, Start:0, Bytes:14\r\nREAD Area:132, DBnum:1, Start:30, Bytes:4\r\nREAD Area:132, DBnum:1, Start:50, Bytes:4\r\nREAD Area:132, DBnum:1, Start:80, Bytes:4"; Assert.AreEqual(req4, t4); var wrapper5 = new ConnectionWrapper(240); var conn5 = new PLCConnection(new PLCConnectionConfiguration(), wrapper5); var listTag5 = new List<PLCTag>(); listTag5.Add(new PLCTag("P#DB1.DBX0 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX8 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX10 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX30 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX50 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX80 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX90 BYTE 30") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX100 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX140 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX160 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX180 BYTE 44") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX230 BYTE 20") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX240 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX250 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX260 BYTE 4") { DontSplitValue = false }); listTag5.Add(new PLCTag("P#DB1.DBX270 BYTE 4") { DontSplitValue = false }); conn5.ReadValues(listTag5, true); var pdus5 = wrapper5.PDUs; string req5 = string.Join(Environment.NewLine, pdus5); string t5 = "READ Area:132, DBnum:1, Start:0, Bytes:14\r\nREAD Area:132, DBnum:1, Start:30, Bytes:4\r\nREAD Area:132, DBnum:1, Start:50, Bytes:4\r\nREAD Area:132, DBnum:1, Start:80, Bytes:4\r\nREAD Area:132, DBnum:1, Start:90, Bytes:30\r\nREAD Area:132, DBnum:1, Start:140, Bytes:4\r\nREAD Area:132, DBnum:1, Start:160, Bytes:4\r\nREAD Area:132, DBnum:1, Start:180, Bytes:44\r\nREAD Area:132, DBnum:1, Start:230, Bytes:24\r\nREAD Area:132, DBnum:1, Start:260, Bytes:4\r\nREAD Area:132, DBnum:1, Start:270, Bytes:4"; Assert.AreEqual(req5, t5); //var tag=new PLCNckTag() { TagDataType = TagDataType.Float, NckArea = 0xa, NckUnit = 0x8,NckColumn = 0x23, NckLine = 0x1,NckModule = 0x1a,NckLinecount = 0x1}; }
private void fetchPLCData_Tick(object sender, EventArgs e) { if (lblConnected.BackColor == Color.LightGreen) { lblConnected.BackColor = Color.DarkGray; } else { lblConnected.BackColor = Color.LightGreen; } try { if (myConn.Connected) { /* Get the ScrollViewer des XAML Trees (um scrollposition zu lesen!)... */ if (myScrollViewer == null) { DependencyObject tst = VisualTreeHelper.GetChild(dataBlockViewControl.MyTree, 0); while (tst != null && tst.GetType() != typeof(ScrollViewer)) { tst = VisualTreeHelper.GetChild(tst, 0); } if (tst != null) { myScrollViewer = (ScrollViewer)tst; } } //nur die angezeigten Values von der SPS lesen... int start = (int)myScrollViewer.VerticalOffset / 20; if (valueList == null || start != oldPos) { List <S7DataRow> tmpLst = S7DataRow.GetChildrowsAsList(expRow); List <S7DataRow> askLst = new List <S7DataRow>(); for (int n = 0; n < tmpLst.Count; n++) { if (n >= start && n < start + 24) { askLst.Add(tmpLst[n]); } } valueList = S7DataRow.GetLibnoDaveValues(askLst); oldPos = start; } myConn.ReadValues(valueList); } else { oldPos = 0; myScrollViewer = null; fetchPLCData.Enabled = false; valueList = null; lblConnected.BackColor = Color.DarkGray; } } catch (Exception ex) { lblStatus.Text = ex.Message; } }