예제 #1
0
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            //if(radioButton1.Checked == true)
            //{
            //    masterData_.transformMode = 0;
            //}
            //else
            //{
            //    masterData_.transformMode = 1;
            //}

            LocalPLC.Base.xml.DataManageBase baseData = null;
            UC.getDataManager(ref baseData);
            try
            {
                if (baseData.serialDic[comboBox_transform_channel.SelectedItem.ToString()].dataBit != 8 && radioButton1.Checked == true)
                {
                    MessageBox.Show("RTU模式下,串口的数据位不能为7");
                    comboBox_transform_channel.SelectedIndex = -1;
                }
            }
            catch
            {
            }
        }
예제 #2
0
        void initBackOriginal()
        {
            LocalPLC.Base.xml.DataManageBase dataManage = null;
            LocalPLC.UserControl1.UC.getDataManager(ref dataManage);
            comboBox_BackOriginal.Items.Clear();
            comboBox_ZPulseSignal.Items.Clear();
            foreach (var di in dataManage.diList)
            {
                if (!di.used)
                {
                    comboBox_BackOriginal.Items.Add(di.channelName);
                    comboBox_ZPulseSignal.Items.Add(di.channelName);
                }
            }

            comboBox_BackOriginal.Text = data.axisMotionPara.backOriginal.orginInputSignal;
            comboBox_ZPulseSignal.Text = data.axisMotionPara.backOriginal.ZPulseSignal;

            levelDic.Clear();
            levelDic.Add((int)TypeLevel.HIGH_LEVEL, "高电平有效");
            levelDic.Add((int)TypeLevel.LOW_LEVEL, "低电平有效");
            comboBox_BackOriginalSelectLevel.Items.Clear();
            foreach (var level in levelDic)
            {
                comboBox_BackOriginalSelectLevel.Items.Add(level.Value);
            }

            comboBox_BackOriginalSelectLevel.SelectedIndex = data.axisMotionPara.backOriginal.selectLevel;
        }
예제 #3
0
 private void comboBox_transform_channel_SelectedIndexChanged(object sender, EventArgs e)
 {
     LocalPLC.ModbusServer.DataManager servermanage = null;
     serverdata.getservermanage(ref servermanage);
     LocalPLC.Base.xml.DataManageBase baseData = null;
     UC.getDataManager(ref baseData);
     try
     {
         for (int i = 0; i < mastermanage.modbusMastrList.Count; i++)
         {
             if (comboBox_transform_channel.SelectedItem.ToString() == mastermanage.modbusMastrList[i].transformChannel && i != MID)
             {
                 comboBox_transform_channel.SelectedIndex = -1;
                 MessageBox.Show("该传输通道已被占用,请选择其他通道");
             }
         }
         for (int j = 0; j < servermanage.listServer.Count; j++)
         {
             if (servermanage.listServer[j].dataDevice_.transformportdescribe == comboBox_transform_channel.SelectedItem.ToString())
             {
                 comboBox_transform_channel.SelectedIndex = -1;
                 MessageBox.Show("该传输通道已被server占用,请选择其他通道");
             }
         }
         if (baseData.serialDic[comboBox_transform_channel.SelectedItem.ToString()].dataBit != 8 && radioButton1.Checked == true)
         {
             MessageBox.Show("RTU模式下,串口的数据位不能为7");
             comboBox_transform_channel.SelectedIndex = -1;
         }
     }
     catch
     {
         return;
     }
 }
예제 #4
0
        void getPTOFromHSP(ref List <string> list)
        {
            LocalPLC.Base.xml.DataManageBase dataManage = null;
            UserControl1.UC.getDataManager(ref dataManage);

            foreach (var hsp in dataManage.hspList)
            {
                if (hsp.used && hsp.type == (int)LocalPLC.Base.UserControlHighOutput.TYPE.PTO)
                {
                    //
                    list.Add(hsp.name);
                }
            }
        }
예제 #5
0
        void initLimitSignal()
        {
            LocalPLC.Base.xml.DataManageBase dataManage = null;
            LocalPLC.UserControl1.UC.getDataManager(ref dataManage);
            comboBox_hardUpLimitInput.Items.Clear();
            comboBox_hardDownLimitInput.Items.Clear();
            foreach (var di in dataManage.diList)
            {
                if (!di.used)
                {
                    comboBox_hardUpLimitInput.Items.Add(di.channelName);
                    comboBox_hardDownLimitInput.Items.Add(di.channelName);
                }
            }

            levelDic.Clear();
            levelDic.Add((int)TypeLevel.HIGH_LEVEL, "高电平有效");
            levelDic.Add((int)TypeLevel.LOW_LEVEL, "低电平有效");
            comboBox_hardUpLimitSelectLevel.Items.Clear();
            comboBox_hardDownLimitSelectLevel.Items.Clear();
            foreach (var level in levelDic)
            {
                comboBox_hardUpLimitSelectLevel.Items.Add(level.Value);
                comboBox_hardDownLimitSelectLevel.Items.Add(level.Value);
            }
            comboBox_hardUpLimitSelectLevel.SelectedIndex   = data.axisMotionPara.limitSignal.hardUpLimitInputLevel;
            comboBox_hardDownLimitSelectLevel.SelectedIndex = data.axisMotionPara.limitSignal.hardDownLimitInputLevel;


            //是否启动硬限位信号
            checkBox1.Checked = data.axisMotionPara.limitSignal.hardLimitChecked;
            checkBox1_CheckedChanged(null, null);
            comboBox_hardUpLimitInput.Text   = data.axisMotionPara.limitSignal.hardUpLimitInput;
            comboBox_hardDownLimitInput.Text = data.axisMotionPara.limitSignal.hardDownLimitInput;


            checkBox_softLimit.Checked = data.axisMotionPara.limitSignal.softLimitChecked;
            checkBox_softLimit_CheckedChanged(null, null);
            textBox_softUpLimitOffset.Text   = data.axisMotionPara.limitSignal.softUpLimitInputOffset.ToString();
            textBox_softDownLimitOffset.Text = data.axisMotionPara.limitSignal.softDownLimitOffset.ToString();
        }
예제 #6
0
        public modbusclient1()
        {
            InitializeComponent();

            //this.Controls.Add(channel);

            LocalPLC.Base.xml.DataManageBase baseData = null;
            UserControl1.UC.getDataManager(ref baseData);
            foreach (string ethname in baseData.ethernetDic.Keys)
            {
                comboBox1.Items.Add(ethname);
            }
            comboBox1.SelectedIndex = -1;

            channel.Text = ". . .";

            DataColumn dc = null;

            //dt.Columns.Add("ID", Type.GetType("System.Int32"));
            //dt.Columns.Add("名称", Type.GetType("System.String"));
            //dt.Columns.Add("IP地址", Type.GetType("System.String"));
            //dt.Columns.Add("响应超时(ms)", Type.GetType("System.Int32"));
            //dt.Columns.Add("允许超时的次数", Type.GetType("System.Int32"));
            //dt.Columns.Add("重连间隔", Type.GetType("System.Int32"));
            //dt.Columns.Add("复位变量", Type.GetType("System.Int32"));
            //dt.Columns.Add(new DataColumn ("通道",typeof(bool)));
            for (int i = 0; i < 16; i++)
            {
                ds.Tables.Add(new DataTable());
                ds.Tables[i].Columns.Add("ID", Type.GetType("System.Int32"));
                ds.Tables[i].Columns.Add("名称", Type.GetType("System.String"));
                ds.Tables[i].Columns.Add("IP地址", Type.GetType("System.String"));
                ds.Tables[i].Columns.Add("设备ID", Type.GetType("System.Int32"));
                ds.Tables[i].Columns.Add("端口号", Type.GetType("System.String"));
                ds.Tables[i].Columns.Add("响应超时", Type.GetType("System.Int32"));
                ds.Tables[i].Columns.Add("重连间隔", Type.GetType("System.Int32"));
                ds.Tables[i].Columns.Add("允许超时的次数", Type.GetType("System.Int32"));
                ds.Tables[i].Columns.Add("复位变量", Type.GetType("System.String"));
                //ds.Tables[i].Columns.Add("通道", Type.GetType("System.String"));
            }
        }
예제 #7
0
        private void modbusmasterform_Load(object sender, EventArgs e)
        {
            LocalPLC.Base.xml.DataManageBase baseData = null;
            UserControl1.UC.getDataManager(ref baseData);
            this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
            comboBox_transform_channel.Items.Clear();
            foreach (string serialname in baseData.serialDic.Keys)
            {
                comboBox_transform_channel.Items.Add(serialname);
            }
            comboBox_transform_channel.SelectedIndex = -1;
            textBox_packet_interval.Text             = masterData_.packet_interval.ToString();
            try
            {
                DataGridViewTextBoxColumn cellColumnID = new DataGridViewTextBoxColumn();
                cellColumnID.Name = "ID";
                DataGridViewTextBoxColumn cellColumnName = new DataGridViewTextBoxColumn();
                cellColumnName.Name = "名称";
                DataGridViewTextBoxColumn cellColumnSlaveAddr = new DataGridViewTextBoxColumn();
                cellColumnSlaveAddr.Name = "从站地址";
                //DataGridViewTextBoxColumn cellColumnTimeout = new DataGridViewTextBoxColumn();
                //cellColumnTimeout.Name = "响应超时(ms)";
                DataGridViewTextBoxColumn cellColumnTimeoutCount = new DataGridViewTextBoxColumn();
                cellColumnTimeoutCount.Name = "允许的超时次数";
                DataGridViewTextBoxColumn cellColumnReconnectInvertal = new DataGridViewTextBoxColumn();
                cellColumnReconnectInvertal.Name = "重连间隔";
                DataGridViewTextBoxColumn cellColumnResetVariable = new DataGridViewTextBoxColumn();
                cellColumnResetVariable.Name = "复位变量";
                DataGridViewDisableButtonColumn buttonColumn = new DataGridViewDisableButtonColumn();
                buttonColumn.Name = "通道";

                //列标题自适应
                dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;


                dataGridView1.Columns.Add(cellColumnID);
                dataGridView1.Columns.Add(cellColumnName);
                dataGridView1.Columns.Add(cellColumnSlaveAddr);
                //dataGridView1.Columns.Add(cellColumnTimeout);
                dataGridView1.Columns.Add(cellColumnTimeoutCount);
                dataGridView1.Columns.Add(cellColumnReconnectInvertal);
                dataGridView1.Columns.Add(cellColumnResetVariable);
                dataGridView1.Columns.Add(buttonColumn);

                dataGridView1.RowCount = 1 + masterData_.modbusDeviceList.Count;

                int i = 0;
                foreach (DeviceData devData in masterData_.modbusDeviceList)
                {
                    dataGridView1.Rows[i].Cells[(int)COLUMNNAME.ID].Value = devData.ID;

                    dataGridView1.Rows[i].Cells[(int)COLUMNNAME.NAME].Value = devData.nameDev;

                    //
                    dataGridView1.Rows[i].Cells[(int)COLUMNNAME.SLAVE_ADDR].Value = devData.slaveAddr;

                    //dataGridView1.Rows[i].Cells[(int)COLUMNNAME.REPONSE_TIMEOUT].Value = devData.reponseTimeout;

                    dataGridView1.Rows[i].Cells[(int)COLUMNNAME.PERMIT_TIMEOUT_COUNT].Value = devData.permitTimeoutCount;

                    dataGridView1.Rows[i].Cells[(int)COLUMNNAME.RECONNECT_INTERVAL].Value = devData.reconnectInterval;

                    dataGridView1.Rows[i].Cells[(int)COLUMNNAME.RESET_VARIABLE].Value = devData.resetVaraible;

                    dataGridView1.Rows[i].Cells[(int)COLUMNNAME.CHANNEL].Value = "..." /* + i.ToString()*/;

                    i++;
                }

                //dataGridView1.RowCount = /*8*/ 1;
                dataGridView1.AutoSize           = true;
                dataGridView1.AllowUserToAddRows = false;
                dataGridView1.ColumnHeadersDefaultCellStyle.Alignment =
                    DataGridViewContentAlignment.MiddleCenter;

                //this.comboBox_transform_channel.Items.Add("COM1");
                this.comboBox_transform_channel.Text = masterData_.transformChannel;

                this.textBox_reponse_timeout.Text = masterData_.responseTimeout.ToString();   //ms

                if (masterData_.transformMode == 0)
                {
                    radioButton1.Checked = true;
                    radioButton2.Checked = false;
                }
                else if (masterData_.transformMode == 1)
                {
                    radioButton2.Checked = true;
                    radioButton1.Checked = false;
                }
            }

            catch (Exception t)
            {
                MessageBox.Show(t.Message);
                return;
            }
        }
예제 #8
0
        //ttttttttttttttttttttttttttttttt
        //ttest
        private void button_add_Click(object sender, EventArgs e)
        {
            // 动态添加创建数组刷新
            //C: \Users\Public\Documents\MULTIPROG\Projects\ttt13579\DT\datatype
            // 从文件中读取并显示每行

            //string fullName = UserControl1.multiprogApp.ActiveProject.Path + "\\" + UserControl1.multiprogApp.ActiveProject.Name + "\\DT\\datatype\\datatype.TYB";
            //;
            //string path = UserControl1.multiprogApp.ActiveProject.FullName;

            //FileStream fs1 = new FileStream(fullName, FileMode.Open, FileAccess.Read);
            //StreamReader sr1 = new StreamReader(fs1, Encoding.Default);
            //string s;
            //s = sr1.ReadLine();
            //string strSave = "";

            //string compare1 = "TYPE";
            //string compare2 = "Task_Info_eCLR :";
            //string compare3 = "STRUCT";
            //string compare4 = "TaskStack : INT;";
            //string compare5 = "END_STRUCT;";
            //string compare6 = "END_TYPE";

            //int count = 0;
            //while (s != null)
            //{
            //    strSave += s + "\r\n";



            //    s = s.Trim();
            //    if (compare1 == s)
            //    {
            //        count = 0;
            //        count++;
            //    }
            //    else if (compare2 == s)
            //    {
            //        count++;
            //    }
            //    else if (compare3 == s)
            //    {
            //        count++;
            //    }
            //    else if (compare4 == s)
            //    {
            //        count++;
            //    }
            //    else if (compare5 == s)
            //    {
            //        count++;
            //    }
            //    else if (compare6 == s)
            //    {
            //        count++;

            //        if(count == 6)
            //        {
            //            int a = 5;
            //            a = 6;
            //            break;
            //        }
            //    }



            //    s = sr1.ReadLine();
            //}

            //fs1.Close();
            //sr1.Close();

            //FileStream fs = new FileStream(fullName, FileMode.OpenOrCreate);
            //fs.SetLength(0);
            //StreamWriter sw = new StreamWriter(fs, Encoding.Default);

            ////sw.WriteLine("TYPE\r\nnimade: ARRAY[0..20] OF BYTE;\r\nEND_TYPE");
            //sw.WriteLine(strSave);
            //sw.Close();
            //fs.Close();

            ////UserControl1.multiprogApp.ActiveProject.Close();
            ////UserControl1.multiprogApp.OpenProject(path, AdeConfirmRule.adeCrConfirm);
            //UserControl1.multiprogApp.ActiveProject.Compile(AdeCompileType.adeCtMake);



            //UserControl1.multiprogApp.ActiveProject.Compile(AdeCompileType.adeCtBuild);
            LocalPLC.ModbusServer.DataManager servermanage = null;
            serverdata.getservermanage(ref servermanage);
            LocalPLC.Base.xml.DataManageBase baseData = null;
            UC.getDataManager(ref baseData);
            int num = 0;

            foreach (string serialname in baseData.serialDic.Keys)
            {
                for (int k = 0; k < masterManage.modbusMastrList.Count; k++)
                {
                    if (masterManage.modbusMastrList[k].transformChannel == serialname)
                    {
                        num++;
                    }
                }
                for (int j = 0; j < servermanage.listServer.Count; j++)
                {
                    if (servermanage.listServer[j].dataDevice_.transformportdescribe == serialname)
                    {
                        num++;
                    }
                }
            }
            if (dataGridView1.RowCount >= utility.masterCount)
            {
                string err = string.Format("master最大个数是{0}", utility.masterCount);
                utility.PrintError(err);
                return;
            }
            if (num >= baseData.serialDic.Count)
            {
                string err = string.Format("串口已用完");
                utility.PrintError(err);
                return;
            }
            int row = dataGridView1.RowCount;

            dataGridView1.RowCount += 1;

            // Set the text for each button.
            int i = row;

            ModbusMasterData data = new ModbusMasterData();

            // for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows[i].Cells["ID"].Value = row;
                data.ID = row;
                dataGridView1.Rows[i].Cells[columnConfig].Value = "..." /* + i.ToString()*/;
                dataGridView1.Rows[i].Cells[columnDetail].Value = "..." /* + i.ToString()*/;
                //data.device = new DeviceData();

                //masterManage.modbusMastrList.Add(data);

                masterManage.add(data);

                //utility.addIOGroups();
                mastermanege1 = masterManage;
                data.isready  = false;
                //refreshaddr();
            }
        }