项目中会经常用到上位机与PLC之间的串口通信,本文介绍一下C#如何编写上位机代码

与三菱FX3U进行通讯

1. 第一种方法是自己写代码实现,主要代码如下:

//对PLC的Y7进行置1
byte[] Y007_ON = { 0x02, 0x37, 0x30, 0x37, 0x30, 0x35, 0x03, 0x30, 0x36 };
//选择串口参数
SerialPort sp = new SerialPort("COM5", , Parity.Even, );
//打开串口
sp.Open();
//写入数据
sp.Write(Y007_ON, , Y007_ON.Length);
//关闭串口
sp.Close();

  该方法的缺点在于我们首先要熟悉三菱PLC的通讯协议,然后根据通信规程来编写通信代码

  举例说就是要对三菱PLC的Y007口进行操作,我们需要知道要对三菱PLC发送什么参数,这

  里可以参考百度文库的一篇文章:

  https://wenku.baidu.com/view/157632dad05abe23482fb4daa58da0116c171fa8.html

2.使用MX COMPONENT软件

  2.1 MX Component 是一个工具,通过使用该工具,可以在无需具备通信协议及模块知

    识的状况下实现从计算机至三菱PLC的通信。

    MX Component的安装使用教程网上有很多,顺便找一下就可以找到合适的,这样

    要说明的是MX Component工具,使用手册和编程手册都可以在三菱的网站上下载。

    工具下载:

    https://cn.mitsubishielectric.com/fa/zh/download/dwn_idx_softwareDetail.asp?sid=45

    手册下载:

    https://cn.mitsubishielectric.com/fa/zh/download/dwn_idx_manual.asp

    下载安装之后sample路径(win10,默认安装):C:\MELSEC\Act\Samples

  2.2 介绍安装配置好MX Component之后C#使用ActUtlType控件进行串口通信

    首先要引用,这两个DLL在例程中可以找到

    

//Logical Station Number的值和在MX Component中设置一样
int logicalStationNumber = ; //添加axActUtlType对象
AxActUtlTypeLib.AxActUtlType axActUtlType = new AxActUtlTypeLib.AxActUtlType();
//不加这三句会报
//引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常
((System.ComponentModel.ISupportInitialize)(axActUtlType)).BeginInit();
this.Controls.Add(axActUtlType);
((System.ComponentModel.ISupportInitialize)(axActUtlType)).EndInit(); //open
axActUtlType.ActLogicalStationNumber = logicalStationNumber;
axActUtlType.ActPassword = "";
axActUtlType.Open(); //Y7写入1
int wirteData = ;
axActUtlType.WriteDeviceRandom("Y7", , ref wirteData);
//D0写入100
int wirteData1 = ;
axActUtlType.WriteDeviceRandom("D0", , ref wirteData1);
//读D0数据
int readData;
axActUtlType.ReadDeviceRandom("D0", , ref readData); //close
axActUtlType.Close();

    这里只是简单介绍,更深入的内容还是去看编程手册和例程。

c#上位机与三菱PLC(FX3U)串口通讯的更多相关文章

  1. 嵌入式Linux学习笔记(六) 上位机QT界面实现和串口通讯实现

    目录 (1).参考资料 (2).QT界面布局实现 (3).数据和操作逻辑 在上一章我们实现了下位机的协议制定,并通过串口通讯工具完成了对设备内外设(LED)的状态修改,下面就要进行上位机软件的实现了( ...

  2. 上位机与三菱FX3U通过FX-232-BD通信

    PLC侧设置: 和校验+协议4 读D200单字: 05 30 30 46 46 57 52 30 44 30 32 30 30 30 31     返回“201”:02 30 30 46 46 30 ...

  3. 上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。

    用libUSB来实现自己的驱动+下位机理论速度.=1M字节每秒. 达到极限速度   WINDOWS已经自带虚拟串口驱动,只不过还需要一个Inf文件 方法1:直接下载一个串口inf,来修改文件.   方 ...

  4. s7nodave用于上位机连接西门子PLC,开源项目epics

    s7nodave 可以看作是Prodave的开源替代者,在PLC侧,不需要编程 This device support does not require any special programming ...

  5. C#上位机之—WinForm实现Socket异步通讯示例

    工作中常用到的一些知识点,总是用完就忘,第一次尝试用博客记录下来,以备后用: Socket通讯,Socket(套接字)是基于TCP/IP通讯方式的封装好的类,调用时需要添加下面的服务引用: using ...

  6. 上位机开发之三菱FX3U以太网通信实践

    上次跟大家介绍了一下上位机与三菱Q系列PLC通信的案例,大家可以通过点击这篇文章:上位机开发之三菱Q系列PLC通信实践(←戳这里) 今天以三菱FX3U PLC为例,跟大家介绍一下,如何实现上位机与其之 ...

  7. C#做一个简单的进行串口通信的上位机

    C#做一个简单的进行串口通信的上位机   1.上位机与下位机 上位机相当于一个软件系统,可以用于接收数据.控制数据.即可以对接收到的数据直接发送操控命令来操作数据.上位机可以接收下位机的信号.下位机是 ...

  8. stm32与三菱PLC通信

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

  9. 三菱plc编程电缆通讯端口设置方法(转载)

    三菱plc编程电缆通讯端口如何设置?三菱plc编程电缆通讯端口设置方法 时间:2015-10-21 05:09:20编辑:电工栏目:三菱plc 导读:三菱plc编程电缆通讯端口的设置方法,三菱plc上 ...

随机推荐

  1. linux学习笔记基础篇(一)

    一.IP操作 1.临时修改IP ,执行命令  ifconfig  网卡名称  新ip :例如 ifconfg  nescc 192.168.1.110 ,重启失效 2.重启网络 ,执行命令 syste ...

  2. appium+python 清空文本框EditText的值

    清空EditText的自动化脚本编写流程: 前提条件:进入到要删除文本框的页面 1.查找到要删除的文本框,可通过id.name等属性进行查找 2.点击 3.通过get_attribute(" ...

  3. 从零开始学 Web 之 CSS(三)链接伪类、背景、行高、盒子模型、浮动

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  4. 干货,一文带你超详细了解 Filter 的原理及应用

    提出问题 1.我们在访问后台很多页面时都需要登录,只有登录的用户才能查看这些页面,我们需要   在每次请求的时候都检查用户是否登陆,这样做很麻烦,有没有一种方法可以在我们请求之   前就帮我们做这些事 ...

  5. Spark学习之RDD编程总结

    Spark 对数据的核心抽象——弹性分布式数据集(Resilient Distributed Dataset,简称 RDD).RDD 其实就是分布式的元素集合.在 Spark 中,对数据的所有操作不外 ...

  6. SSRS报表服务随笔(rdl报表服务)-创建一个简单的报表

    这段时间一直在敲rdl报表,在国内的不这么留在,在国外的话,还是挺流行的,国内的话,这方面的资料很少很少,也踏过不少坑 先从SSRS了解起,SSRS全称 SQL Server Reporting Se ...

  7. sqlmap Bool型&延时型 检测策略分析

    目录 sqlmap Bool型&延时型 检测策略分析 0x00 预备-queryPage() 0x01 bool型检测策略 判断依据 quick_ratio() 案例 0x02 延时型 判断依 ...

  8. 使用JDBC操作MySQL数据库

    一.JDBC简介 JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组 ...

  9. shiro的DelegatingFilterProxy怎么找到ShiroFilterFactoryBean

    首先看到web.xml中的配置 <context-param> <param-name>contextConfigLocation</param-name> < ...

  10. 【php性能优化】关于写入文件操作的取舍方案

    对于使用php对文件进行写入操作有两种方案一种使用 file_put_contents() 和 fopen()/fwrite()/fclose() 两种方案至于应该怎么选,我觉得应该分情况选择,下面是 ...