c#通过OPC server与西门子S7-200 smart实现通信示范代码txwtech

c#通过OPC server与西门子S7-200 smart实现通信示范代码txwtech

  public bool ConnetOPC()//连接OPC并创建组
        {
            int i = 0;
            try
            {
                string hostname = Dns.GetHostName();
                object serverList = opcServer.GetOPCServers(hostname);
                opcServer.Connect("S7200SMART.OPCServer", "192.168.10.2");//连接OPC,输入本地网口IP地址

                if (opcServer.ServerState == (int)OPCServerState.OPCRunning)//连接成功
                {
                    Console.WriteLine("连接OPC成功");
                    opcGroup = opcServer.OPCGroups.Add();//创建组
                    Console.WriteLine("创建组完成");
                    SetGroupProperty();

                    for (i = 0; i < strItemIDs.Length; i++)//创建组里的项
                    {
                        //创建每个项,并为每个项分配编号,范围:1~strItemIDs.Length
                        //因此每个项的编号为它在数组strItemIDs中的索引值+1。
                        opcItems[i] = opcGroup.OPCItems.AddItem("MWSMART.PLC." + strItemIDs[i], i + 1);
                    }

                    Console.WriteLine("创建组里的项完成");
                    SyncReadWriteThread.Start();
                    Console.WriteLine("启动读PLC线程");

                    return true;
                }
                else
                {
                    Console.WriteLine("连接OPC失败" + opcServer.ServerState);
                    return false;
                }
            }
            catch (Exception e)
            {
                //Console.WriteLine("ConnetOPC函数catch到异常!" + e.Message + " " + i);
                MessageBox.Show("ConnetOPC函数catch到异常!" + e.Message + "\r\n" + "创建第" + i + "项时发生异常!");
                return false;
            }
        }

连接代码:

  private void ToolStripMenuItem_ConnectPLC_Click(object sender, EventArgs e) //菜单栏连接PLC
        {
            bool result = false;
            OPCServer = new COPCServer();
            result = OPCServer.ConnetOPC();//连接OPC

            if (result)
            {
                ConnectPLC_ToolStripMenuItem.BackColor = Color.Green;
                ConnectPLC_ToolStripMenuItem.Text = "PLC已连接!";
                ConnectPLC_ToolStripMenuItem.Enabled = false;

                if (ConnectRobot_ToolStripMenuItem.BackColor == Color.Green) toolStripMenuItem_通讯口设置.BackColor = Color.Green;
            }
            else
            {
                ConnectPLC_ToolStripMenuItem.BackColor = Color.Red;
                ConnectPLC_ToolStripMenuItem.Text = "PLC未连接!";
                ConnectPLC_ToolStripMenuItem.Enabled = true;

                toolStripMenuItem_通讯口设置.BackColor = Color.Red;
            }
        }

源代码这里找: s7-200smart通信项目实例c#.rar

https://blog.csdn.net/txwtech/article/details/96737086

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

txwtech笛克特科

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值