C# 通过网络和三菱的PLC通信

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace PLCTest2
{
    public partial class Form1 : Form
    {
        private AxActUtlTypeLib.AxActUtlType axActUtlType = null;
        public Form1()
        {
            InitializeComponent();
            this.axActUtlType = new AxActUtlTypeLib.AxActUtlType();
            //((System.ComponentModel.ISupportInitialize)(this.axActUtlType)).BeginInit();
            this.Controls.Add(this.axActUtlType);       //貌似这个控件必须要加到Controls中,不然就会引发异常。
        }
 
        private void btnConn_Click(object sender, EventArgs e)
        {
            try
            {
                int iStation = Convert.ToInt32(this.txtStationNo.Text.Trim());
                this.axActUtlType.ActLogicalStationNumber = iStation;
                this.axActUtlType.ActPassword = this.txtPassword.Text.Trim();
                int rtn = this.axActUtlType.Open();
                if (rtn == 0)
                {
                    ShowMsg("连接成功!");
                    this.txtStationNo.Enabled = false;
                    this.txtPassword.Enabled = false;
                    this.btnConn.Enabled = false;
                }
                else
                {
                    ShowMsg("连接失败");
                }
            }
            catch (Exception ex)
            {
                ShowMsg(ex.Message);
            }
        }
 
 
 
        private void ShowMsg(string msg)
        {
            string str = string.Format(DateTime.Now.ToString("HH:mm:ss")   "_"   msg);
            this.richTextBox1.SelectionStart = this.richTextBox1.Text.Length;
            this.richTextBox1.SelectedText  = (str   Environment.NewLine);
            this.richTextBox1.ScrollToCaret();
        }
 
        private void btnRead_Click(object sender, EventArgs e)
        {
            try
            {
                string strAddr = this.txtAddr.Text.Trim();
                int num = Convert.ToInt32(this.txtNum.Text.Trim());
                short[] arr = new short[num];
 
                int rtn = this.axActUtlType.ReadDeviceBlock2(strAddr, num, out arr[0]);
                if (rtn == 0)
                {
                    ShowMsg("读取数据成功!");
                    for (int i = 0; i < arr.Length; i  )
                    {
                        ShowMsg(string.Format("{0:X4}", arr[i]));
                    }
                }
                else
                {
                    ShowMsg("读取数据失败");
                }
            }
            catch (Exception ex)
            {
                ShowMsg(ex.Message);
            }
        }
 
        private void btnWrite_Click(object sender, EventArgs e)
        {
            try
            {
                string strAddr = this.txtAddr.Text.Trim();
                string[] strData = this.txtData.Lines;
                int num = strData.Length;
                short[] arr = new short[num];
                for (int i = 0; i < num; i  )
                {
                    arr[i] = Convert.ToInt16(strData[i]);
                }
 
                int rtn = this.axActUtlType.WriteDeviceBlock2(strAddr, num, ref arr[0]);
                if (rtn == 0)
                {
                    ShowMsg("写入数据成功!");
                    this.txtNum.Text = num.ToString();
                }
                else
                {
                    ShowMsg("写入数据失败");
                }
 
            }
            catch (Exception ex)
            {
                ShowMsg(ex.Message);
            }
        }
    }
}

标签: C# 网络 c 通信 的

C# 通过网络和三菱的PLC通信相关推荐

  1. stm32与三菱PLC通信

    一.三菱PLC通讯概要   三菱PLC FX系列通信结构如下图所示: 三菱PLC FX系列的通信规格如下图所示: 三菱PLC FX系列一般有以下几种通信模块,以FX2N为例: FX2N-232-BD ...

  2. 上位机开发之三菱PLC通信

    前言 三菱MC协议是开发三菱系列PLC必须掌握的一种通信协议,其目的是让外部设备,可以通过串行通信模块C24或以太网接口模块E71,实现对可编程控制器CPU的数据访问. MC协议是Melsec协议的简 ...

  3. 通过电脑给继电器发送指令_三菱FX PLC学习之通信指令(上)

    点击上方蓝字关注我们 [免费抽奖]电气人不能错过的PLC书籍与软件! 通信指令本身不难,难的是对通信的理解.在学习PLC通信指令之前,我曾尝试去看通信相关的课程,然后告诉自己:算了,不必勉强自己,学不 ...

  4. mx三菱plc安装报错_Qt使用 MX Component 插件与三菱PLC通信

    作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 MX Component 简介 MX Component 是三菱PLC官方上位机通讯中间件,通过使用该工 ...

  5. 上位机通过MX component version 组件与三菱PLC通信解决办法,最新MX component version5支持X64

    上位机通过MX component version4组件与三菱PLC通信解决办法,最新MX component version5支持X64 第一节:MX Component Version软件与手册下 ...

  6. 上位机通过MX component version4 组件与三菱PLC通信解决办法

    引用:https://blog.csdn.net/txb13145826106/article/details/115007885 上位机通过MX component version4 组件与三菱PL ...

  7. 三菱 fx2n 通信 linux 代码,三菱FX2N PLC串行通讯指令(FNC 80 RS)

    三菱FX2N PLC串行通讯指令(FNC 80 RS) 串行通讯指令(FNC 80 RS) 1.指令格式:    [RS     D0     K8     D10    K8] 发送数据帧起始地址和 ...

  8. PC与三菱FX系列PLC通信实例

    本文介绍的 PC 与三菱 FX 系列 PLC 通信,是通过 PLC 的编程口与 PC 机的串口进行的,采用 SC-09 编程电缆作为计算机与 PLC 通信的连线.电缆的 9 芯 D 形插头连接在计算机 ...

  9. 5u fb库 三菱plc_三菱FX5U PLC入门必备基础知识特点

    三菱FX5U PLC因自身的性能特点,使用的人群越来越广,首先FX5U PLC支持结构化程序,并可写入ST语言和FB语言,以及支持多个程序的执行. 其次,在FX系列中,FX5UPLC的指令运算速度是最 ...

最新文章

  1. GIS+=地理信息+云计算技术——Spark集群部署
  2. SP-1CL3 陶瓷接收管 光电接收二极管 红外线接收管
  3. idea教程--使用mave创建普通java项目
  4. Web架构师成长之路
  5. centos7 和centos 6的一些区别
  6. markdown 常用语法总结 - 个人版
  7. 基于FPGA实现ADC7768数据采集系统设计(8路)
  8. iOS 使用NJKWebViewProgress做webview进度条(加载网页时获取加载进度)
  9. 悼念著名计算机科学学者孙钟秀院士
  10. 大疆RoboMaster技术总监:我是如何成为一名机器人工程师的
  11. Allegro-PCB文件默认双击打开
  12. Selenium 2入门
  13. 2022年最新前端面试题
  14. execute immediate使用方法
  15. laravel Migration与Seeder的用法
  16. Java云同桌学习系列(二十二)——mongoDB数据库
  17. MML ch 10 主成分分析降维(Dimensionality Reduction with Principal Component Analysis)
  18. 琐事记 - 2015/10/28
  19. 解决Win10系统激活office2019时出现 0xc004f074 无法激活问题,亲测可用!!!
  20. 正版软件,盗版软件和免费软件

热门文章

  1. 读文献——《Learning representations by back-propagating errors》
  2. Android屏幕渲染
  3. 平凡的女人,伟大的奉献
  4. 服务器SN信息,命令查看服务器SN号
  5. dd命令创建一个大文件
  6. android 智能电视 电视盒子 安卓嵌入式硬件LAN压力测试
  7. 给你看个宝贝:GitHub 最野的开源库,把你拿捏的死死的。。。
  8. Servlet.init() for servlet [Global] threw exception
  9. MTCNN论文翻译 人脸检测
  10. kafka中文文档new comsumer配置参数