private void buttonSendData_Click(object sender, EventArgs e) { if (Global.MainPlc != null) // Plc variable has been initialized { if (Global.MainPlc.IsConnected) // if connection with PLC has been established { byte[] sendData = PrepareDataToSend(); // prepare and save data to send ErrorCode _error = Global.MainPlc.WriteBytes(DataType.DataBlock, 30, 0, sendData); // send data if (_error == ErrorCode.NoError) { var form = new popupPlcConnection("Data sent succesfully", "", true); form.Show(); } else { var form = new popupPlcConnection("Data haven't been sent", $"Encountered difficulty:\n{_error}", false); form.Show(); } } } else { var form = new popupPlcConnection("Data haven't been sent", "PLC isn't connected!", false); form.Show(); } }
private void buttonSendString_Click(object sender, EventArgs e) { if (reader != null) // XML file isn't empty { // send data to PLC ErrorCode _e1 = prepareData(reader.fileInfo.Production_area, 270); ErrorCode _e2 = prepareData(reader.fileInfo.Machine_type, 526); ErrorCode _e3 = prepareData(reader.fileInfo.Machine_type_id, 782); ErrorCode _e4 = prepareData(reader.fileInfo.Version, 1038); ErrorCode _e5 = prepareData(reader.fileInfo.Environment_version, 1294); ErrorCode _e6 = prepareData(reader.fileInfo.Timestamp, 1550); // data sent succesfully if (_e1 == ErrorCode.NoError && _e2 == ErrorCode.NoError && _e3 == ErrorCode.NoError && _e4 == ErrorCode.NoError && _e5 == ErrorCode.NoError && _e6 == ErrorCode.NoError) { var form = new popupPlcConnection("Data sent succesfully", "", true); form.Show(); } // an error ocurred while sending any if the string else { var form = new popupPlcConnection("Error occured while sending data", "", false); form.Show(); } } // XML file is empty or hasn't been read - send empty strings else { ErrorCode _e1 = prepareData("", 270); ErrorCode _e2 = prepareData("", 526); ErrorCode _e3 = prepareData("", 782); ErrorCode _e4 = prepareData("", 1038); ErrorCode _e5 = prepareData("", 1294); ErrorCode _e6 = prepareData("", 1550); // data sent succesfully if (_e1 == ErrorCode.NoError && _e2 == ErrorCode.NoError && _e3 == ErrorCode.NoError && _e4 == ErrorCode.NoError && _e5 == ErrorCode.NoError && _e6 == ErrorCode.NoError) { var form = new popupPlcConnection("Data sent succesfully", "", true); form.Show(); } // an error ocurred while sending any if the string else { var form = new popupPlcConnection("Error occured while sending data", "Check conncetion with the PLC", false); form.Show(); } } }
private void buttonSendString_Click(object sender, EventArgs e) { string _str = textBoxOutputString.Text; // take save string to variable byte[] _bytes = S7.Net.Types.String.ToByteArray(_str); // convert string to byte[] array byte max_len = (byte)100; // max legth of string byte actual_len = (byte)_str.Length; // actual length of sent string List <byte> Message = new List <byte>(); // create list of bytes Message.Add(max_len); // Message.Add(actual_len); // Message.AddRange(_bytes); // if (Global.MainPlc != null) // Plc variable has been initialized { if (Global.MainPlc.IsConnected) // Connection with PLC has been established { ErrorCode _error = Global.MainPlc.WriteBytes(DataType.DataBlock, 30, 14, Message.ToArray()); // send data if (_error == ErrorCode.NoError) { var form = new popupPlcConnection("Data sent succesfully", "", true); form.Show(); } else { var form = new popupPlcConnection("Data haven't been sent", $"Encountered difficulty:\n{_error}", false); form.Show(); } } } else { var form = new popupPlcConnection("Data haven't been sent", $"PLC isn't connected!", false); form.Show(); } }
private void buttonConnectWithPlc_Click(object sender, EventArgs e) { // auxiliary boolean variables // if all are true then connection can be established bool bIP = true, bRack = true, bSlot = true; /// choose PLC S71200 if nothing has been chosen CpuType type; if (comboBoxPlcType.SelectedItem != null) // if type of PLC has been selected { type = (CpuType)comboBoxPlcType.SelectedItem; // save chosen type to variable } else { // if type of PLC has been selected comboBoxPlcType.SelectedItem = S7.Net.CpuType.S71200; // Select PLC S71200 type = (CpuType)comboBoxPlcType.SelectedItem; // save chosen type to variable } string ipNumber = ""; // stores combined IP number // checking if wrong IP number has been typed if (textBoxIpFirst.Text == "" || textBoxIpSecond.Text == "" || textBoxIpThird.Text == "" || textBoxIpFourth.Text == "") { bIP = false; } else // if IP has been typed correctly { ipNumber = textBoxIpFirst.Text + "." + textBoxIpSecond.Text + "." + textBoxIpThird.Text + "." + textBoxIpFourth.Text; bIP = true; } // if rack number has not been typed correctly int number; bool result = Int32.TryParse(textBoxRack.Text, out number); if (textBoxRack.Text == "" || result == false || number < 0) { bRack = false; } // if rack number has not been typed correctly result = Int32.TryParse(textBoxSlot.Text, out number); if (textBoxSlot.Text == "" || result == false || number < 0) { bSlot = false; } // if everything is OK if (bIP && bRack && bSlot) { // initialize Plc variable Global.MainPlc = new Plc(type, ipNumber, Int16.Parse(textBoxRack.Text), Int16.Parse(textBoxSlot.Text)); ErrorCode _error = Global.MainPlc.Open(); // open connection with physical PLC if (_error == ErrorCode.NoError) // if connection with PLC has been established { // create and show a form saying that the connection has been established succesfully var form = new popupPlcConnection("Conncetion with PLC established succesfully", "", true); form.Show(); } else { // create and show a form saying that the connection hasn't been established var form = new popupPlcConnection("Conncetion with PLC hasn't been established", "Check for errors in connection or typed parameters!", false); form.Show(); } } else // if a piece of data has been typed incorrectly { // Create message string msgHeader = "Wrong input values!"; string msgBody = ""; if (bIP == false) { msgBody += "Assigned IP number is wrong!\n"; } if (bRack == false) { msgBody += "Assigned rack number is wrong!\n"; } if (bSlot == false) { msgBody += "Assigned slot number is wrong!"; } // create and show a form saying that the connection hasn't been established // because sth went wrong var form = new popupPlcConnection(msgHeader, msgBody, false); form.Show(); } }
private void buttonSendToPlc_Click(object sender, EventArgs e) { if (reader != null && Global.MainPlc != null) { if (reader.symbolicPoints.symbolic_points_list.Count() == 0) { var form = new popupPlcConnection("XML File has no symbolic points", "", false); form.Show(); } else { // send amount of symbolic points short count = (short)reader.symbolicPoints.symbolic_points_list.Count(); // converting integer to byte[] array and reversing order (S7 uses different notation) byte[] _byte = BitConverter.GetBytes(count); Array.Reverse(_byte); ErrorCode _error = Global.MainPlc.WriteBytes(DataType.DataBlock, 31, 0, _byte); // send data if (_error == ErrorCode.NoError) { int DBindex = 2; bool break_loop = false; for (int i = 0; i < reader.symbolicPoints.symbolic_points_list.Count(); i++) { ErrorCode err1 = prepareData(reader.symbolicPoints.symbolic_points_list[i].Icon_type, DBindex); ErrorCode err2 = prepareData(reader.symbolicPoints.symbolic_points_list[i].Id, DBindex + 10); DBindex += 20; if (err1 != ErrorCode.NoError || err2 != ErrorCode.NoError) { break_loop = true; break; } } if (break_loop) { var form = new popupPlcConnection("Error occured while sending data", $"{(reader.symbolicPoints.symbolic_points_list.Count()-2)/20} of {reader.symbolicPoints.symbolic_points_list.Count()} Symbolic Points have been sent", false); form.Show(); } else { var form = new popupPlcConnection("Data sent succesfully", "", true); form.Show(); } } else { var form = new popupPlcConnection("Data haven't been sent", $"Encountered difficulty:\n{_error}", false); form.Show(); } } } else if (reader == null) { var form = new popupPlcConnection("An XML file hasn't been uploaded", "Uplad an XML File", false); form.Show(); } else if (Global.MainPlc == null) { var form = new popupPlcConnection("PLC isn't connected", "", false); form.Show(); } }