久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1601|回復: 0
收起左側

FX系列以太網(FX5U)

[復制鏈接]
ID:596934 發表于 2019-8-7 15:19 | 顯示全部樓層 |閱讀模式

using System.Collections.Generic;
using System;
using System.Linq;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Xml.Linq;
using Microsoft.VisualBasic;
using System.Collections;
using System.Windows.Forms;


using System.Runtime.InteropServices;

namespace TcpClient
{
       
        public partial class Form1
        {
                public Form1()
                {
                        InitializeComponent();
                       
                        if (defaultInstance == null)
                                defaultInstance = this;
                }
               
#region Default Instance
               
                private static Form1 defaultInstance;
               

                public static Form1 Default
                {
                        get
                        {
                                if (defaultInstance == null)
                                {
                                        defaultInstance = new Form1();
                                        defaultInstance.FormClosed += new FormClosedEventHandler(defaultInstance_FormClosed);
                                }
                               
                                return defaultInstance;
                        }
                        set
                        {
                                defaultInstance = value;
                        }
                }
               
                static void defaultInstance_FormClosed(object sender, FormClosedEventArgs e)
                {
                        defaultInstance = null;
                }
               
#endregion
               
                int Handle1;
                bool EntLink;
                long ScanCount;
               
                EntFxPlc.PlcClient PLC = new EntFxPlc.PlcClient();
               
                [DllImport("winmm.dll", ExactSpelling=true, CharSet=CharSet.Ansi, SetLastError=true)]
                public static extern UInt32 timeGetTime();
               
                public void Form1_Load(System.Object sender, System.EventArgs e)
                {
                        this.CenterToScreen();
                        cmbReadMry.Items.Clear();
                        cmbReadMry.Items.Add("X");
                        cmbReadMry.Items.Add("Y");
                        cmbReadMry.Items.Add("M");
                        cmbReadMry.Items.Add("L");
                        cmbReadMry.Items.Add("F");
                        cmbReadMry.Items.Add("D");
                       
                               
                        cmbWriteMry.Items.Clear();
                        cmbWriteMry.Items.Add("X");
                        cmbWriteMry.Items.Add("Y");
                        cmbWriteMry.Items.Add("M");
                        cmbWriteMry.Items.Add("L");
                        cmbWriteMry.Items.Add("F");
                        cmbWriteMry.Items.Add("D");
                       
                       
                       
                        cmbBitMry.Items.Clear();
                        cmbBitMry.Items.Add("X");
                        cmbBitMry.Items.Add("Y");
                        cmbBitMry.Items.Add("M");
                        cmbBitMry.Items.Add("L");
            cmbBitMry.Items.Add("F");
            cmbBitMry.Items.Add("D");
                       
                        //
                        cmbReadType.Items.Clear();
                        cmbReadType.Items.Add("INT16");
                        cmbReadType.Items.Add("UINT16");
                        cmbReadType.Items.Add("DINT32");
                        cmbReadType.Items.Add("HEX32");
                        cmbReadType.Items.Add("REAL32");
                        cmbReadType.Items.Add("BIN16");
                       
                        cmbWriteType.Items.Clear();
                        cmbWriteType.Items.Add("INT16");
                        cmbWriteType.Items.Add("UINT16");
                        cmbWriteType.Items.Add("DINT32");
                        cmbWriteType.Items.Add("HEX32");
                        cmbWriteType.Items.Add("REAL32");
                        cmbWriteType.Items.Add("BIN16");
                       

                        cmbReadMry.SelectedIndex = 5;
                        cmbWriteMry.SelectedIndex = 5;
                        cmbBitMry.SelectedIndex = 2;
                        cmbReadType.SelectedIndex = 0;
                        cmbWriteType.SelectedIndex = 0;
                        lstRead.Items.Clear();
                        txtWrite.Text = "";
            cmbCmdType.SelectedIndex = 0;
                       
                }
               
               
                public void butLink_Click(System.Object sender, System.EventArgs e)
                {
                        short re = 0;
                        string restr = "";
            re = PLC.EntLink(txtLocalIP.Text.Trim(), Convert.ToUInt16(txtLocalPort.Text), txtRemoteIP.Text.Trim(), Convert.ToUInt16(txtRemotePort.Text),  "DEMO", ref Handle1,Convert.ToUInt16 (2000),Convert .ToBoolean (cmbCmdType .SelectedIndex ));
                        txtReLink.Text = re.ToString();
                        if (re == 0)
                        {
                                EntLink = true;
                                MessageBox.Show("PLC聯接成功!");
                        }
                        else
                        {
                                EntLink = false;
                                MessageBox.Show("PLC聯接失敗: " + restr);
                        }
                }
               
               
               
                public void butClose_Click(System.Object sender, System.EventArgs e)
                {
                        short re = 0;
                        EntLink = false;
                        re = PLC.DeLink(Handle1);
                        txtReClose.Text = re.ToString();
                }
               
               
               
                public void butRead_Click(System.Object sender, System.EventArgs e)
                {
                        short i = 0;
                        short re = 0;
                        object[] RD = null;
                        if (!EntLink)
                        {
                                MessageBox.Show("還未與PLC建立聯接!");
                                return;
                        }
                        if (Conversion.Val(txtReadCnt.Text) < 1)
                        {
                                MessageBox.Show("CmdRead方法的Count參數必須大于0.");
                                return;
                        }
                        RD = new object[Convert.ToUInt16(txtReadCnt.Text)];
            int var1 =cmbReadMry.SelectedIndex + 1;
                        EntFxPlc.PlcClient.PlcMemory mry = (EntFxPlc.PlcClient.PlcMemory)var1;
            var1 =cmbReadType.SelectedIndex + 1;
                        EntFxPlc.PlcClient.DataType typ =(EntFxPlc.PlcClient.DataType)var1;
                       
                        re = PLC.CmdRead(Handle1, mry, typ, Convert.ToUInt16(txtReadAdd.Text), Convert.ToUInt16(txtReadCnt.Text), ref RD);
                       
                        txtReRead.Text = re.ToString();
                        lstRead.Items.Clear();
                        for (i = 0; i < RD.Length; i++)
                        {
                                if (!ReferenceEquals(RD[i], null))
                {
                                        lstRead.Items.Add(RD[i]);
                                }
                                else
                                {
                                        lstRead.Items.Add("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;
                        }
                        if (Conversion.Val(txtWriteCnt.Text) < 1)
                        {
                                MessageBox.Show("CmdRead方法的Count參數必須大于0.");
                                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 = cmbWriteMry.SelectedIndex + 1;
            EntFxPlc.PlcClient.PlcMemory mry = (EntFxPlc.PlcClient.PlcMemory)var1;
            var1 = cmbWriteType.SelectedIndex + 1;
            EntFxPlc.PlcClient.DataType typ = (EntFxPlc.PlcClient.DataType)var1;
                       
                        re = PLC.CmdWrite(Handle1, mry, typ, Convert.ToUInt16(txtWriteAdd.Text), Convert.ToUInt16(txtWriteCnt.Text), ref WD);
                       
                        txtReWrite.Text = re.ToString();
                }
               
               
                public void butScan_Click(System.Object sender, System.EventArgs e)
                {
                        if (!EntLink)
                        {
                                MessageBox.Show("還未與PLC建立聯接!");
                                return;
                        }
                        if (butScan.Text == "Cycle R/W")
                        {
                                ScanCount = 0;
                                Timer1.Enabled = true;
                                butScan.Text = "Stop R/W";
                        }
                        else
                        {
                                Timer1.Enabled = false;
                                butScan.Text = "Cycle R/W";
                        }
                }
               
               
               
               
                public void Timer1_Tick(System.Object sender, System.EventArgs e)
                {
                        Timer1.Enabled = false;
                        int tim = System.Convert.ToInt32(timeGetTime());
                        if (!EntLink)
                        {
                                MessageBox.Show("還未與PLC建立聯接!");
                                return;
                        }
                        //
                        butRead_Click(null, null);
                        butWrite_Click(null, null);
                        //
                        if ((short.Parse(txtReRead.Text) < 0) || (short.Parse(txtReWrite.Text) < 0))
                        {
                                butScan.Text = "Cycle R/W";
                                return;
                        }
                        else
                        {
                                ScanCount++;
                                txtScanCnt.Text = ScanCount.ToString();
                                txtScanPrd.Text = (System.Convert.ToInt32(timeGetTime()) - tim) + "ms";
                        }
                        Timer1.Enabled = true;
                }
               
               
               
               
                public void butBitTest_Click(System.Object sender, System.EventArgs e)
                {
                        if (!EntLink)
                        {
                                MessageBox.Show("還未與PLC建立聯接!");
                                return;
                        }
                        bool rd = false;
                        short re = 0;
            int var1 = cmbBitMry.SelectedIndex + 1;
            EntFxPlc.PlcClient.PlcMemory mry = (EntFxPlc.PlcClient.PlcMemory)var1;
                       
                        re = PLC.Bit_Test(Handle1, mry, Convert.ToUInt16(txtBitAdd.Text),  ref rd);
                       
                        txtBitTest.Text = rd.ToString();
                        txtReBit.Text = re.ToString();
                }
               
               
               
               
               
                public void butBitSet_Click(System.Object sender, System.EventArgs e)
                {
                        if (!EntLink)
                        {
                                MessageBox.Show("還未與PLC建立聯接!");
                                return;
                        }
                        short re = 0;
            int var1 = cmbBitMry.SelectedIndex + 1;
            EntFxPlc.PlcClient.PlcMemory mry = (EntFxPlc.PlcClient.PlcMemory)var1;
                       
                        re = PLC.Bit_Set(Handle1, mry, Convert.ToUInt16(txtBitAdd.Text));
                       
                        txtReBit.Text = re.ToString();
                }
               
               
                public void butBitRst_Click(System.Object sender, System.EventArgs e)
                {
                        if (!EntLink)
                        {
                                MessageBox.Show("還未與PLC建立聯接!");
                                return;
                        }
                        short re = 0;
            int var1 = cmbBitMry.SelectedIndex + 1;
            EntFxPlc.PlcClient.PlcMemory mry = (EntFxPlc.PlcClient.PlcMemory)var1;
                       
                        re = PLC.Bit_Reset(Handle1, mry, Convert.ToUInt16(txtBitAdd.Text));
                       
                        txtReBit.Text = re.ToString();
                }
               
               
                public void butReadString_Click(System.Object sender, System.EventArgs e)
                {
                        if (!EntLink)
                        {
                                MessageBox.Show("還未與PLC建立聯接!");
                                return;
                        }
                        string re = "";
                        re = PLC.CmdReadString(Handle1, EntFxPlc.PlcClient.PlcMemory.DR, Convert.ToUInt16(txtBuffAdd.Text), Convert.ToUInt16(txtBuffSize.Text));
                        txtReadString.Text = re;
                }
               
                public void butWriteString_Click(System.Object sender, System.EventArgs e)
                {
                        if (!EntLink)
                        {
                                MessageBox.Show("還未與PLC建立聯接!");
                                return;
                        }
                        short re = 0;
                        re = PLC.CmdWriteString(Handle1, EntFxPlc.PlcClient.PlcMemory.DR, Convert.ToUInt16(txtBuffAdd.Text), Convert.ToUInt16(txtBuffSize.Text), txtWriteString.Text);
                        txtReWriteString.Text = re.ToString();
                }
               
               
               
        }
       
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线视频日韩精品 | 国产一区二区黑人欧美xxxx | 日韩二区三区 | 黑人精品欧美一区二区蜜桃 | 天天夜夜人人 | 日韩在线一区二区三区 | 亚洲一区免费 | 巨大荫蒂视频欧美另类大 | 国产精品成人一区二区 | 亚洲综合天堂 | 在线观看中文视频 | 亚洲国产成人久久综合一区,久久久国产99 | 午夜精品久久久 | 黄色片a级| 91精品国产91久久久久游泳池 | 亚洲逼院 | 欧美日韩精品在线免费观看 | 亚洲一区三区在线观看 | 国产精品视频免费播放 | 成人av在线播放 | 国产色网站 | 一级毛片免费 | 九九视频在线观看 | 国产精品海角社区在线观看 | 日本精品视频一区二区 | 色在线视频网站 | 国产探花| 国产精品69久久久久水密桃 | 精品久久久久久久久亚洲 | 亚洲区一区二 | 欧美在线一区二区三区 | 国产一区不卡 | www.av7788.com | 日韩免费看片 | 欧美精品一区二区三区蜜桃视频 | 亚洲精品日韩欧美 | 91精品国产91久久久久久最新 | 久久久久久久久淑女av国产精品 | 青草福利 | 精品国产黄色片 | 韩国欧洲一级毛片 |