private void FormMain_Load(object sender, EventArgs e) { try { txtResult.AppendText("FATEK PLC COMMUNICATION PROTOCOL VIA SERIALPORT\r\n"); txtResult.AppendText("===============================================================\r\n"); txtResult.AppendText(string.Format("1. Port Name: COM5 \r\n")); txtResult.AppendText(string.Format("2. BaudRate: 9600 \r\n")); txtResult.AppendText(string.Format("3. Parity: Even \r\n")); txtResult.AppendText(string.Format("4. DataBits: 7 \r\n")); txtResult.AppendText(string.Format("5. StopBits: One \r\n")); txtResult.AppendText("===============================================================\r\n"); txtResult.AppendText("Designed By Industrial Networks\r\n"); txtResult.AppendText("Skype: katllu\r\n"); txtResult.AppendText("Mobile: (+84) 909.886.483\r\n"); txtResult.AppendText("E-mail: [email protected]\r\n"); txtResult.AppendText("Youtube: https://www.youtube.com/industrialnetworks \r\n"); txtResult.AppendText(Environment.NewLine); objFatekCommunication = new FatekCommunication("COM5", 9600, Parity.Even, 7, StopBits.One); objFatekCommunication.Connect(); } catch (Exception ex) { MessageBox.Show(this, ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void Connect() { try { IsConnected = true; Console.WriteLine("STARTED: {0}", ++COUNTER); taskArray = new Task[Channels.Count]; if (taskArray == null) { throw new NullReferenceException("No Data"); } for (var i = 0; i < Channels.Count; i++) { taskArray[i] = new Task(chParam => { FatekCommunication modbus = null; var ch = (Channel)chParam; modbus = mbe[ch.ChannelName]; modbus.Connect(); IsConnected = modbus.IsConnected; while (IsConnected) { foreach (var dv in ch.Devices) { foreach (var db in dv.DataBlocks) { if (!IsConnected) { break; } SendPackage(modbus, dv, db); } } } }, Channels[i]); taskArray[i].Start(); } } catch (Exception ex) { var err = new HMIException.ScadaException(this.GetType().Name, ex.Message); IsConnected = false; } }
/// <summary> /// This constructor takes the COM number and baude rate and adds Parity bit and number of bit values and calls Fatek core constructor /// </summary> /// <param name="COMno"></param> /// <param name="baudRate"></param> public FatekPLCInterface(string COMno, int baudRate) { _comNumber = COMno; objFatekCommunication = new FatekCommunication(COMNumber, baudRate, Parity.Even, 7, StopBits.One); objFatekCommunication.Connect(); }