C#+PLC通讯框架串口网口开发课程

鲍二家的
• 阅读 128

学习地址1:https://pan.baidu.com/s/1ms_r89M65YtYhriCWej9Dg 提取码:ewex 学习地址2:https://share.weiyun.com/jTPjemxC 密码:zxwkcd

大家好,很高兴今天又可以给大家做分享,我将在本文给大家讲解C#的串口编程、网络编程、PLC通讯开发和架构设计,彻底搞定下位机通讯编程。

本文通过C#、欧姆龙PLC、HostLink通讯协议 TCP通讯 ● 串口通讯等要素,并通过C#相关技术如数据类型 抽象 继承 事件event 函数 修饰符(public private internal)泛型 Action委托 IPAddress 多态函数 socket编程(tcpclient)SerialPort串口多线程 -> 子线程 异步,开发一套具有通用性、扩展性的PLC通讯框架。

一、首先,我们先来认识C#,那么什么是C#呢? C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

二、C#用来做什么的? 1、可以用做快速开发,如开发一些小工具或者一些小项目; 2、适合做“asp.net”网页开发; 3、适合结合unity3d做游戏的脚本开发; 4、可以做移动应用开发等等。

三、PLC的几种常见的连接口和通讯协议 1、RS232接口: 计算机通讯接口之一,通常RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25)的型态出现,般个人计算机上会有两组RS-232接口,分别称为 COM1和COM2。 2、RS485 RS485无具体的物理形状,根据工程的实际情况而采用的接口。 3、RS232:传输电平信号接口的信号电平值较高(信号“1”为“-3V至-15V”,信号“0”为“3至15V”),易损坏接口电路的芯片,又因为与TTL电平(0“<0.8v”,1“>2.0V”)不兼容故需使用电平转换电路方能与TTL电路连接。另外抗干扰能力差。 4、RS485:传输差分信号逻辑“1”以两线间的电压差为+(2—6) V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。接口信号电平比RS-232降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。

四、代码实战 maven仓库 org.apache.plc4x plc4j-core 0.2.0

    <dependency>
        <groupId>org.apache.plc4x</groupId>
        <artifactId>plc4j-driver-s7</artifactId>
        <version>0.4.0</version>
        <scope>runtime</scope>
    </dependency>

生成报文代码大致如下 public class RTUTools { /** * 返回modbusRTU的请求报文 * * @param addr 从机地址 * @param start_addr 起始地址 * @param data_length 数据长度 * @return */ public static byte[] getRTUMessage(int addr, int start_addr, int data_length) { // 建立如下报文格式:01 04 00 04 00 01 70 0B

    byte buf[] = new byte[8];
    //起始地址
    buf[0] = (byte) (addr & 0xFF);
    //功能码03
    buf[1] = (byte) 3;
    //起始地址
    buf[2] = (byte) (start_addr >> 8);
    buf[3] = (byte) (start_addr & 0xFF);
    //数据长度
    buf[4] = (byte) (data_length >> 8);
    buf[5] = (byte) (data_length & 0xFF);
    //校验

    // 这里返回的就是一个报文的数组
    return CRC16M.getSendBuf(buf);
}

}

plc4x没测试成功。老是报错,好像是Netty底层的buff转byte有坑还是怎么回事,反正没测试成功。我使用HslCommunication倒是测试成功了,提供的方法挺全面的比如读取一个VW点位的值就是这样 public static void main(String[] args) { //方法只用选择PLC型号和传入PLC的IP地址即可 SiemensS7Net siemensS7Net = new SiemensS7Net(SiemensPLCS.S200Smart,"192.168.1.1"); //读取一个vw点位,是一个16位Int OperateResultExOne read = siemensS7Net.ReadInt16("V1128"); //可以根据IsSuccess属性判断是否读取成功 if(read.IsSuccess){ //Content属性则是返回的内容 short value= read.Content; System.out.println("Value:"+value); } }

点赞
收藏
评论区
推荐文章
赵颜 赵颜
4个月前
[16章]SpringBoot2 仿B站高性能前端+后端项目(2023新版)
资料地址1:https://pan.baidu.com/s/1cxQDKIi7iu1mGmjRr9a0Mw提取码:tz5s资料地址2:https://pan.baidu.com/s/1DjmuC6Id4oUCNVbxfgcMg提取码:qtf3今天给大家讲讲
赵颜 赵颜
4个月前
[23章附电子书]SpringBoot+Vue3+MySQL集群 开发健康体检双系统
学习地址1:https://pan.baidu.com/s/1WWeuY50AZ0d3rbJ0LJ4pg提取码:kubm学习地址2:https://share.weiyun.com/74nsFIu0密码:ih38qp大家都知道医疗行业是互联网发展前景极好的
荀勗 荀勗
4个月前
SpringBoot+Vue3+MySQL集群 开发健康体检双系统(附电子书+23章全)
学习地址1:https://pan.baidu.com/s/1kWztQpuWaF1utuAGN1E5gw提取码:t547学习地址2:https://share.weiyun.com/74nsFIu0密码:ih38qp今天跟大家讲一个关于体检健康双系统的
赵嬷嬷 赵嬷嬷
4个月前
[升级16章+电子书]SpringBoot+Vue3 项目实战,打造企业级在线办公系统
学习地址1:https://pan.baidu.com/s/1gx9YoT3asP0fRdlwnBzXIQ提取码:ftyi学习地址2:https://share.weiyun.com/jVSDdcBU密码:cruqf9SpringBootVue3项目实战
荀勗 荀勗
4个月前
SpringBoot 3 + Flutter3 实战低代码运营管理[完结10章]
学习地址1:https://pan.baidu.com/s/1jKTbbi8aoYiSnGyzeoVcw提取码:m7rw学习地址2:https://share.weiyun.com/Oh3g6KRc密码:kiyx7m大家好,今天给大家讲讲关于低代码运营管理
双寿 双寿
4个月前
Vue3+Pinia+Vite+TS 还原高性能外卖APP项目[完结10章]
学习地址1:https://pan.baidu.com/s/1qGqggdxT2yUf0ifiFUeYg提取码:jgap学习地址2:https://share.weiyun.com/Wjw3QpeQ密码:gxrfcw大家好,今天我将带着大家用Vue3Pi
赵嬷嬷 赵嬷嬷
3个月前
[31周]AI人工智能算法工程师体系课2024
学习地址1:https://pan.baidu.com/s/1wpfuPvDb4Y4BQEKPt7bc1A提取码:q7xz学习地址2:https://pan.baidu.com/s/1CYzDHRmYKDPb29MfKN0qlg提取码:2jt4今天给大家讲
双寿 双寿
2个月前
C#+PLC通讯框架串口网口开发教程
学习地址1:https://pan.baidu.com/s/1TD5T66UGzJm7An8pz44K5g提取码:a69d学习地址2:https://share.weiyun.com/jTPjemxC密码:zxwkcd一、为什么选择CC是一种新式、创新、开
鲍二家的 鲍二家的
2个月前
[完结7章]C++大厂面试真题宝典 精选100道
学习地址1:https://pan.baidu.com/s/1I0qkwahl1lTPYhYAB8I4gw提取码:8rqi学习地址2:https://share.weiyun.com/mzwzUqJU密码:4r3u73C大厂面试汇总,希望对大家的面试有
鲍二家的 鲍二家的
1个月前
[完结17章]SpringBoot3+Vue3 开发高并发秒杀抢购系统
学习地址1:https://pan.baidu.com/s/1DRZXkQeGkrPwhVTd2ko00g提取码:gpwn学习地址2:https://share.weiyun.com/ysK13sR2密码:74m96t众所周知,作为开发新手,入行、实习、转