PC和三菱FX系列PLC直接通过现成库和编程口进行 串口通讯

2024-01-15 13:08

本文主要是介绍PC和三菱FX系列PLC直接通过现成库和编程口进行 串口通讯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目需求: 需要PC读取和控制PLC来控制电控系统的运动来配合视觉的检测

平台: 上位机软件:VS2010 C#    PLC: FX2N-48MT-D

详情:

1. 先通过三菱GX-WORK2,连接编程线到PLC口,先做通讯测试,并且下载和上传程序,如果成功的话,

说明接线成功,通讯正常,接下来开始编写我们的程序。

2.起初直接下载三菱的MX compent4.08,安装好后,直接通过选择工具箱,选择com,选择FXCPU,但是

导入后,出现编程软件重启,一直不行。后开始尝试,直接提取dll,测试成功可行。大家可借鉴一下,比起

自己研究所有协议方便很多。

3. 直接新建程序,在引用中添加,AxInterop.ACTPCCOMLib.dll,程序如下:

namespace mxcompent2010
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        ActFXCPU com = new ActFXCPU();

private void button1_Click(object sender, EventArgs e)
        {

}

private void button2_Click(object sender, EventArgs e)
        {
            com.ActBaudRate = 9600;
            com.ActControl = 8;
            com.ActCpuType = 517;
              com.ActPortNumber = 4;         
            com.ActTimeOut = 200;
        
            int m = com.Open();
        }

private void button3_Click(object sender, EventArgs e)
        {int data;
         int   ret2 = com.SetDevice("Y10", 1);       //设置Y10为高电平
         com.GetDevice("Y10", out data);//得到Y10数据给data
        
        }

private void button4_Click(object sender, EventArgs e)
        {
            int data;
            com.SetDevice("Y10",0); //设置Y10为低电平
            com.GetDevice("Y10", out data);
        }

private void button5_Click(object sender, EventArgs e)
        {
            int data;
            com.GetDevice("X0", out data); //得到X0参数给data
           
        }
       
    }
}
以上程序通讯测试ok。以下函数可以自己再琢磨,不需要分析PLC和PC的通讯协议了。
int ReadDeviceBlock(string szDevice, int lSize, out int lplData);
        [DispId(22)]
        int ReadDeviceBlock2(string szDevice, int lSize, out short lpsData);
        [DispId(5)]
        int ReadDeviceRandom(string szDeviceList, int lSize, out int lplData);
        [DispId(24)]
        int ReadDeviceRandom2(string szDeviceList, int lSize, out short lpsData);

下载链接:http://download.csdn.net/download/snowbird13/10205059



            

这篇关于PC和三菱FX系列PLC直接通过现成库和编程口进行 串口通讯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608994

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估