예제 #1
0
        public void butWrite_Click(System.Object sender, System.EventArgs e)
        {
            short i  = 0;
            short re = 0;

            string[] temp = null;
            object[] WD   = null;
            if (!EntLink)
            {
                MessageBox.Show("还未与PLC建立联接!");
                return;
            }
            WD   = new object[Convert.ToUInt16(txtWriteCnt.Text)];
            temp = txtWrite.Text.Split('\n');
            for (i = 0; i < WD.Length; i++)
            {
                if (i >= temp.Length)
                {
                    WD[i] = 0;
                }
                else
                {
                    WD[i] = temp[i].Trim();
                }
            }
            int var1 = cmbWriteType.SelectedIndex + 1;

            FinsUdp.PlcClient.DataType typ = (FinsUdp.PlcClient.DataType)var1;
            switch (cmbWriteMry.SelectedIndex)
            {
            case 0:
                re = PLC.CmdWrite(PlcHandle, FinsUdp.PlcClient.PlcMemory.CIO, typ, Convert.ToUInt16(txtWriteAdd.Text), Convert.ToUInt16(txtWriteCnt.Text), ref WD);
                break;

            case 1:
                re = PLC.CmdWrite(PlcHandle, FinsUdp.PlcClient.PlcMemory.WR, typ, Convert.ToUInt16(txtWriteAdd.Text), Convert.ToUInt16(txtWriteCnt.Text), ref WD);
                break;

            case 2:
                re = PLC.CmdWrite(PlcHandle, FinsUdp.PlcClient.PlcMemory.DR, typ, Convert.ToUInt16(txtWriteAdd.Text), Convert.ToUInt16(txtWriteCnt.Text), ref WD);
                break;

            case 3:
                re = PLC.CmdWrite(PlcHandle, FinsUdp.PlcClient.PlcMemory.ER, typ, Convert.ToUInt16(txtWriteAdd.Text), Convert.ToUInt16(txtWriteCnt.Text), ref WD);
                break;

            case 4:
                re = PLC.CmdWrite(PlcHandle, FinsUdp.PlcClient.PlcMemory.TIM, typ, Convert.ToUInt16(txtWriteAdd.Text), Convert.ToUInt16(txtWriteCnt.Text), ref WD);
                break;

            case 5:
                re = PLC.CmdWrite(PlcHandle, FinsUdp.PlcClient.PlcMemory.CNT, typ, Convert.ToUInt16(txtWriteAdd.Text), Convert.ToUInt16(txtWriteCnt.Text), ref WD);
                break;
            }
            txtReWrite.Text = re.ToString();
        }
예제 #2
0
        public void butRead_Click(System.Object sender, System.EventArgs e)
        {
            short i  = 0;
            short re = 0;

            object[] RD = null;
            RD = new object[Convert.ToUInt16(txtReadCnt.Text)];
            if (!EntLink)
            {
                MessageBox.Show("还未与PLC建立联接!");
                return;
            }
            int var1 = cmbReadType.SelectedIndex + 1;

            FinsUdp.PlcClient.DataType typ = (FinsUdp.PlcClient.DataType)var1;
            switch (cmbReadMry.SelectedIndex)
            {
            case 0:
                re = PLC.CmdRead(PlcHandle, FinsUdp.PlcClient.PlcMemory.CIO, typ, Convert.ToUInt16(txtReadAdd.Text), Convert.ToUInt16(txtReadCnt.Text), ref RD);
                break;

            case 1:
                re = PLC.CmdRead(PlcHandle, FinsUdp.PlcClient.PlcMemory.WR, typ, Convert.ToUInt16(txtReadAdd.Text), Convert.ToUInt16(txtReadCnt.Text), ref RD);
                break;

            case 2:
                re = PLC.CmdRead(PlcHandle, FinsUdp.PlcClient.PlcMemory.DR, typ, Convert.ToUInt16(txtReadAdd.Text), Convert.ToUInt16(txtReadCnt.Text), ref RD);
                break;

            case 3:
                re = PLC.CmdRead(PlcHandle, FinsUdp.PlcClient.PlcMemory.ER, typ, Convert.ToUInt16(txtReadAdd.Text), Convert.ToUInt16(txtReadCnt.Text), ref RD);
                break;

            case 4:
                re = PLC.CmdRead(PlcHandle, FinsUdp.PlcClient.PlcMemory.TIM, typ, Convert.ToUInt16(txtReadAdd.Text), Convert.ToUInt16(txtReadCnt.Text), ref RD);
                break;

            case 5:
                re = PLC.CmdRead(PlcHandle, FinsUdp.PlcClient.PlcMemory.CNT, typ, Convert.ToUInt16(txtReadAdd.Text), Convert.ToUInt16(txtReadCnt.Text), ref RD);
                break;
            }
            txtReRead.Text = re.ToString();
            lstRead.Items.Clear();
            for (i = 0; i < RD.Length; i++)
            {
                if (!(RD[i] == null))
                {
                    lstRead.Items.Add(RD[i]);
                }
                else
                {
                    lstRead.Items.Add("0");
                }
            }
        }