using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace z8092_01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); MessageBox.Show("Please start your ISaGRAF application before press start button.", "Button Clicked", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1); timer1.Interval = 250; timer1.Enabled = true; } private void timer1_Tick(object sender, EventArgs e) {//scan ISaGRAF varibles ScanDI(); ScanProperties(); } private void button1_Click(object sender, EventArgs e) { //set ISaGRAF varible "start"=true. Quicker.UserShare.UserSetCoil(Convert.ToUInt16(1), 1); } private void ScanDI() { //chech i8092f DI status byte di_value; Quicker.UserShare.UserGetCoil(Convert .ToUInt16 (2),out di_value ); //limit+ if (di_value == 1) { Limit_XP.BackColor = Color.Red; } else { Limit_XP.BackColor = Color.Black; } //limit- Quicker.UserShare.UserGetCoil(Convert.ToUInt16(3), out di_value); if (di_value == 1) { Limit_XN.BackColor = Color.Red; } else { Limit_XN.BackColor = Color.Black; } //Near Home signal Quicker.UserShare.UserGetCoil(Convert.ToUInt16(4), out di_value); if (di_value == 1) { NHome_X.BackColor = Color.Red; } else { NHome_X.BackColor = Color.Black; } //home signal Quicker.UserShare.UserGetCoil(Convert.ToUInt16(5), out di_value); if (di_value == 1) { Home_X.BackColor = Color.Red; } else { Home_X.BackColor = Color.Black; } //emergency signal Quicker.UserShare.UserGetCoil(Convert.ToUInt16(6), out di_value); if (di_value == 1) { EMG.BackColor = Color.Red; } else { EMG.BackColor = Color.Black; } } private void ScanProperties() { int value; //read logic pulse Quicker.UserShare.UserGetReg_Long(Convert.ToUInt16(7), out value); label3.Text = value.ToString(); //read encoder pulse Quicker.UserShare.UserGetReg_Long(Convert.ToUInt16(9), out value); label4.Text = value.ToString(); //switch step Quicker.UserShare.UserGetReg_Long(Convert.ToUInt16(11), out value); switch_step(value); } private void switch_step(int step_motion) { switch (step_motion) { case 0: label6.Text ="Please click start button to start."; break; case 1: label6.Text = "Now search near home signal."; break; case 2: label6.Text = "Now search home signal"; break; default : label6.Text = "error !!! Please check your ISaGRAF I/O connection or Manual."; break; } } } }