精华内容
下载资源
问答
  • 串口数据读取

    2014-09-03 17:23:55
    实现串口数据读取,运用可视化的C sharp 软件实现ADS采集的连接
  • 01通讯基础软件使用博图V14。硬件使用西门子1200系列具体1214C通讯模块使用的是CB 1241RS485的模块。通讯指令使用的是MODBUS(RTU)指令。西门子有一个很大的迷惑点就是对硬件版本,软件版本的要求...
    844cfbe6fa8dc88ec218f9079c7f691d.pngJZGKCHINA工控技术分享平台

    尊重原创 勿抄袭

    勿私放其他平台

    4fd26d8674910a64177e18ddd313fce7.png

    整个通讯过程并不是很复杂,就是需要注意几个关键点。有几个地方需要做设置。对于第一次使用还是会耽搁不少时间的。

    4fd26d8674910a64177e18ddd313fce7.png

    01

    通讯基础

    软件使用博图V14。硬件使用西门子1200系列具体1214C通讯模块使用的是CB 1241RS485的模块。

    40c96c0dfb0ab78bc037fe679ab79ae6.png

    通讯指令使用的是MODBUS(RTU)指令。西门子有一个很大的迷惑点就是对硬件版本,软件版本的要求。

    c85f726072c5d0152e3e9e2e0cc6b89c.png

    这个是我实际使用的通讯板。从博图软件看到的通讯板固件版本是V1.0并不是网上很多的说是要V2.0或者更高。只是很多写说明的自己都亲自测试。

    02

    通讯组态

    本来通讯组态不是很复杂,就是有很多设置点留有多个接口点,但是只有一个起作用。这样就给初次使用者造成了很多的不方便。

    1、通讯程序的模式选择        

    e58962467f3766f3c2e3ba65be66d4db.png

    这个地方如果使用二线制半双工的话一定做这步设置。接线的时候只要把A,B两条线接到通讯板的A,B不需要接其它的端子。

    2、通讯组态的初始化

    601925287b8fcc849188fd5905823324.png

    使能端一直要使能。REQ第一次PLC上电脉冲触发一次,做个并联点主要是为了测试方便。PORT就是通讯板的标识号,可以在通讯板属性中查看。

    接下来的就是 常规的串口设置参数,延时那个参数还是要注意,默认1000毫秒。最好不要改动。至于后边的通讯状态,错误提示,DONE还算是要根据自己项目需要做好参数配置。如果需要和多个从站设备通讯的话一定要根据这个做轮询驱动。以及故障判断。

     

    这里面具体的含义西门子官网说的比较清楚。唯一需要注意的就是MODBUS通讯的几个关键要素。

    波特率,奇偶校验,数据位,停止位,这里面有一个很操蛋的事情是波特率,奇偶校验在这个初始化里面就可以设置。但是停止位是用1位还是2位必须在"Modbus_Comm_Load_DB"这个DB块中设置。

    STOP_BITS一定要到DB块中修改。

    faf471e682f0d793f35851606c496cb9.png

    在这个里面的这个必须根据实际情况设置。 

    80b7dfd651271174263db839e1f2ea3d.png

    牢记,牢记,牢记。

    再有就是

    "Modbus_Master_DB".MB_DB

    878e30e4f961f763f9b0c18735d5de11.png

    这个地方的设置还是需要注意一下,从看到的一些资料中这个地方的设置根据不同版本是不一样的。还有一个就是像我这样的小白最好是从列表中选择。只是一个指针,自己手动输入的话也要注意。错了就是红色字体提示。

    03

    主站编程

    博图中的串口可以设置成主站,也可以是从站。一把是做为主站使用。读取其它设备。一般都比较好配置,使能一直给有,REQ接通的时候就读一次数据,如果是一台设备就好处理,不需要轮询。多台设备的时候就需要根据状态吗进行判断。轮询,以及故障的显示。简单的数据读取,就没有做复杂的编程。用系统变量,触发。MB_ADDR从站地址。MODE是读取数据还是写数据,0读取,1写入。DATA_ADDR是要读取的寄存器的起始地址,DATA_LEN读取的长度。可以根据实际情况设置,DATA_PIR是一只指针变量,一般使用DB块来存放数据。P#DB2.DBX0.0 WORD 14这个是指向DB2数据块中从0.0到14的WORD类型的存储区。

    365ed1e3a66593fa069805772e0d5404.png

    后面的输出端子就是主站通讯状态的一些判断。如果是和多个从站通讯的话需要根据这些变量来判断轮询。其中STATUS是一个很关键的数据,可以判断通讯的具体状态。一般显示7000或者7002,8000。这几个状态值在帮助中没有很详细的介绍。一般显示上面这几个值就能把数据出来。BUSY一般会在1和0之间闪烁。只要有闪烁就说明通讯是在进行,有时候有闪烁,但是没有数据,一般就去找停止位的设置。自己的体会。上面的配置完成后一把就可以把从站数据读取上来。

    04

    存储数据DB块的定义

    读取的数据一般存储在DB块中。具体定义就在下面。就是定义了一对数组用来存放从站寄存器的数据,很多时候串口通讯的从站是16进制返回的数据,而且很多时候大端,小短与PLC的存储方式不一样,PLC一般是从低字节往高字节存放。但是很多仪表,计算机是从高字节往低字节存储。这个于存储设备的存储空间大小有很大关系。

    按照实际需要设置好DB块,

    4e2a6513eb6ee134471213b5c6fbce73.png

    DB块的属性中把优化的访问前面的√取消掉。

    3b1fac8e13463e38096982b2b89bf061.png

    这样寻址好一点。经过这几步以后,一般能在DB块中看到数据变化。如果看到数据就说明通讯已经建立。数据流正常了。也就完成了很大一部分工作。

    05

    数据解析

    这次碰到的是仪表数据是高低字节反着的。无法直接读取数据。也有很多仪表直接就可以显示仪表的数据,不需要任何变换。

    数据交换西门子有一个指令,也很好。只是这次数据不多。就使用简单粗暴的方法直接MOVE指令搞定。哈哈。把DB块中的数据MOVE到MW区。高低自己颠倒一下。得到的MW区的数据就是仪表数据的正确顺序。

    74a4085eed59c75c7b195e6708c902a4.png

    得到正确顺就可以对MW区的数据进行变换了。使用CONV指令进行变换。

    d99145e033d338561efdfc30423040d0.png

    得到的数据就是我们想要看到的数据,与仪表实际数据一致。

    4fd26d8674910a64177e18ddd313fce7.png

    通讯的基本工作完成。方法简单粗暴。

    小白可以看看。大神飘过即可。哈哈。

    4fd26d8674910a64177e18ddd313fce7.png

    作者简介

    张建鹏:

    一个奔跑在工控路上的工控人。目前主要集中在边缘计算节点设备,做一些自动化系统集成。

    往期精选

    cf12eb22b3ce94c0ee6de28b514599b6.png

    23ab7468c901bda1e8678872f0151157.pngf8f78ad3ae0a369a7728dfaa9c558ee2.png

    8be7edf4c4d7a5cf530bd0011b85039e.png

    4e270638cc6fad220a9579742b9844a2.png

    人气推荐

    more+

    dfebc2aac35713957016b7456157b6b8.pngcdb6b76281eaaac83bfb1d42b463d225.png48ab3de2b088d85f1905161a0fb880a4.pngf4ee3345ddf3c3804cc2f528260b46a7.png

    f183168cc9b0c08a3d4d4f7e180cbee2.png

    1.Smart200&V90伺服系统:已更新15课

    2.贝加莱直播课程:已更新16课

    3.力控科技产品培训:已更新5课

    4.剑指工控经典公开课:已更新22课5.新品推荐:已更新3课

    6.专家课堂:已更新12课

    e3f3a7ea8b0ecb8a6b2e62e18c067687.gif

    展开全文
  • 读取串口数据记录到excel中,access中,以及生成波形图。成熟界面设计,详细代码注释。 读取串口数据记录到excel中,access中,以及生成波形图。成熟界面设计,详细代码注释。
  • 01通讯基础软件使用博图V14。硬件使用西门子1200系列具体1214C通讯模块使用的是CB 1241RS485的模块。通讯指令使用的是MODBUS(RTU)指令。西门子有一个很大的迷惑点就是对硬件版本,软件版本的要求。这个是我实际使用...

    01通讯基础

    软件使用博图V14。硬件使用西门子1200系列具体1214C通讯模块使用的是CB 1241RS485的模块。

    591f60847606629a77acaa8503be0466.png

    通讯指令使用的是MODBUS(RTU)指令。西门子有一个很大的迷惑点就是对硬件版本,软件版本的要求。

    32621c5175f1c2a4c902a28a33a3777e.png

    这个是我实际使用的通讯板。从博图软件看到的通讯板固件版本是V1.0并不是网上很多的说是要V2.0或者更高。只是很多写说明的自己都亲自测试。

    02通讯组态

    本来通讯组态不是很复杂,就是有很多设置点留有多个接口点,但是只有一个起作用。这样就给初次使用者造成了很多的不方便。

    1、通讯程序的模式选择

    8c5060cc7407013aa9fded1dbfcc6f4b.png

    这个地方如果使用二线制半双工的话一定做这步设置。接线的时候只要把A,B两条线接到通讯板的A,B不需要接其它的端子。

    2、通讯组态的初始化

    c5b89fb64b1ef3170cfa9ca113fde635.png

    使能端一直要使能。REQ第一次PLC上电脉冲触发一次,做个并联点主要是为了测试方便。PORT就是通讯板的标识号,可以在通讯板属性中查看。

    接下来的就是 常规的串口设置参数,延时那个参数还是要注意,默认1000毫秒。最好不要改动。至于后边的通讯状态,错误提示,DONE还算是要根据自己项目需要做好参数配置。如果需要和多个从站设备通讯的话一定要根据这个做轮询驱动。以及故障判断。

    这里面具体的含义西门子官网说的比较清楚。唯一需要注意的就是MODBUS通讯的几个关键要素。

    波特率,奇偶校验,数据位,停止位,这里面有一个很操蛋的事情是波特率,奇偶校验在这个初始化里面就可以设置。但是停止位是用1位还是2位必须在"Modbus_Comm_Load_DB"这个DB块中设置。

    STOP_BITS一定要到DB块中修改。

    3eb925572de7188b82bd0b656f71e348.png

    在这个里面的这个必须根据实际情况设置。

    d5a8aebe4e09187e56fbc4db9e6b2f91.png

    牢记,牢记,牢记。

    再有就是

    "Modbus_Master_DB".MB_DB

    65a9db700db91cd0083ba5102783f209.png

    这个地方的设置还是需要注意一下,从看到的一些资料中这个地方的设置根据不同版本是不一样的。还有一个就是像我这样的小白最好是从列表中选择。只是一个指针,自己手动输入的话也要注意。错了就是红色字体提示。

    03主站编程

    博图中的串口可以设置成主站,也可以是从站。一把是做为主站使用。读取其它设备。一般都比较好配置,使能一直给有,REQ接通的时候就读一次数据,如果是一台设备就好处理,不需要轮询。多台设备的时候就需要根据状态吗进行判断。轮询,以及故障的显示。简单的数据读取,就没有做复杂的编程。用系统变量,触发。MB_ADDR从站地址。MODE是读取数据还是写数据,0读取,1写入。DATA_ADDR是要读取的寄存器的起始地址,DATA_LEN读取的长度。可以根据实际情况设置,DATA_PIR是一只指针变量,一般使用DB块来存放数据。P#DB2.DBX0.0 WORD 14这个是指向DB2数据块中从0.0到14的WORD类型的存储区。

    33b64f68d44654dc4744d71adb925ce1.png

    后面的输出端子就是主站通讯状态的一些判断。如果是和多个从站通讯的话需要根据这些变量来判断轮询。其中STATUS是一个很关键的数据,可以判断通讯的具体状态。一般显示7000或者7002,8000。这几个状态值在帮助中没有很详细的介绍。一般显示上面这几个值就能把数据出来。BUSY一般会在1和0之间闪烁。只要有闪烁就说明通讯是在进行,有时候有闪烁,但是没有数据,一般就去找停止位的设置。自己的体会。上面的配置完成后一把就可以把从站数据读取上来。

    04存储数据DB块的定义

    读取的数据一般存储在DB块中。具体定义就在下面。就是定义了一对数组用来存放从站寄存器的数据,很多时候串口通讯的从站是16进制返回的数据,而且很多时候大端,小短与PLC的存储方式不一样,PLC一般是从低字节往高字节存放。但是很多仪表,计算机是从高字节往低字节存储。这个于存储设备的存储空间大小有很大关系。

    按照实际需要设置好DB块,

    de136a2f350b1a70be1d522d7721d6eb.png

    DB块的属性中把优化的访问前面的√取消掉。

    bb5f2f45144be578b361b75d05d762c7.png

    这样寻址好一点。经过这几步以后,一般能在DB块中看到数据变化。如果看到数据就说明通讯已经建立。数据流正常了。也就完成了很大一部分工作。

    05数据解析

    这次碰到的是仪表数据是高低字节反着的。无法直接读取数据。也有很多仪表直接就可以显示仪表的数据,不需要任何变换。

    数据交换西门子有一个指令,也很好。只是这次数据不多。就使用简单粗暴的方法直接MOVE指令搞定。哈哈。把DB块中的数据MOVE到MW区。高低自己颠倒一下。得到的MW区的数据就是仪表数据的正确顺序。

    60d69a9bd03c575405ff5f3bd5cb3b20.png

    得到正确顺就可以对MW区的数据进行变换了。使用CONV指令进行变换。

    0edbbbef9755ff00a2997da700193f98.png

    得到的数据就是我们想要看到的数据,与仪表实际数据一致。

    感谢各位老铁阅读,想要获取更多内容,请关注剑指工控头条号和公众号,要是觉得对你有帮助请点赞,转发!

    展开全文
  • 最近想用MATLAB去分析一个VGA小车的加速度、角速度、角度。在网上找到了一个JY61的模块。...1 测试JY61模块 硬件:JY61模块、USB-TTL串口模块 软件: 商家给的上位机软件 JY61和USB-TTL的连接方式 : VCC-VCC ...

    最近想用MATLAB去分析一个VGA小车的加速度、角速度、角度。在网上找到了一个JY61的模块。

    8d63401e9731ee977152c86c7c6c1836.png
    JY61模块

    想和大家分享下,如何用MATLAB去读取JY61的陀螺仪的加速度、角速度、角度。

    1 测试JY61模块

    硬件:JY61模块、USB-TTL串口模块

    软件: 商家给的上位机软件

    JY61和USB-TTL的连接方式 : VCC-VCC

    TX-RX

    RX-TX

    GND-GND

    安装好CH340的驱动后,打开商家给的上位机,选好串口号,然后点击打开就行了。结果如下图所示

    f583e9a7301af10b14977d0e1cb251b4.png

    JY61出厂测试没有问题。我们开发用MATLAB去读取加速度、角速度、角度。

    2 MATLAB读取JY61数据

    大 致思路和大家说一下,现在JY61是通过串口模块已经能把数据给到电脑上了。而且COM口我们已经知道了。以上面为例子我的是COM10。因此,我们只要写程序去获取这个COM10的数据就可以了。程序如下图:

    8e7bf7f002211f2c439e1f71c7d632a9.png

    然后就是数据处理了。程序如下图:

    746469933bd5dad1d3b410cb5b1736d6.png

    3 结果展示

    e16739568dc010cf85b3d427bc3103ee.png
    展开全文
  • QT 高效串口读取、显示与存储软件开发之二:串口高效读取(线程讨论)串口数据操作connect直接连接线程中直接读取利用movetothread在线程中开启串口 串口数据操作 搜了大量的资料,也看了QT的文档,串口读取有以下几...

    QT 高效串口读取、显示与存储软件开发之二:串口高效读取(线程讨论)

    串口数据操作

    搜了大量的资料,也看了QT的文档,串口读取有以下几种方案,包括:connect直接连接、线程中直接读取(Run)、利用movetothread、在线程中开启串口(打开串口)。所有的串口操作均封装在动态连接库中,名为:hdntCom,对外输入输出接口如下:

     class SerialSetInfo{
    public:
        QString ComName;
        QString BaudRate;
        QString DataBit;
        QString StopBit;
        QString Parity;
        QString Protocol;
    };
    
    class HDNTCOMSHARED_EXPORT hdntCom:public QThread
    {
       Q_OBJECT
    public:
       hdntCom(QObject *parent);
       ~hdntCom();
    
       int Init(SerialSetInfo *SerialSetParm);  //Init the serial port
       int Open();  //open
       int Close();
    
       int Write(QByteArray *Dat);
       QByteArray Read();
    
       bool isOpen();
       QByteArray ComData;
       uint8_t *uComData;
       uint16_t ComDataLength;
    
       QSerialPort * m_serial = nullptr;
    
       bool mThreadRun=true;
    
       bool OpenFlag=false;
    
    
       void setCallback(std::function<void(void)> func);
    private slots:
       void ReceiveComData(void);
    
    signals:
       void SendReceiveData(QByteArray Dat);
       void Sg_ComReady(void);
    
    private:
    
    
    
       std::function<void(void)> m_func;
       uint8_t BufferNum=2;
       bool SolveFlag=true;
       QByteArray Buffer1,Buffer2;
    
    
    protected:
       void run();
    };
    

    connect直接连接

    利用connect命令,直接将readready与一个槽函数相连,代码如下:

    connect(m_serial,SIGNAL(readyRead()),this,SLOT(ReceiveComData()));//有数据就读
    

    该种方法,ReceiveComData函数运行在主线程中,一旦GUI负载过重,则串口卡顿明显。

    线程中直接读取

    将hdntCom继承于QThread,重构run函数

    void hdntCom::run(){
        while(mThreadRun)
        {
             if(m_serial->isOpen()){
                if(m_serial->waitForReadyRead(-1))  //等待有数据到达,-1表示永不超时
                {
                    this->usleep(1000);  //延时一会,等待数据全部到达
                    ComData.clear();
                    Buffer1=m_serial->readAll();
                    ComData=Buffer1;
                    ComDataLength=ComData.length();
                    emit Sg_ComReady();
                    m_func();
                }
            }else{
               this->terminate();
                mThreadRun=false;
            }
        }
    }
    

    利用movetothread

    新建一个类命名为工作线程,如下

    #include <QObject>
    #include <QtCore/qglobal.h>
    #include <functional>
    
    class WorkThread:public QObject
    {
        Q_OBJECT
    public:
        WorkThread(QObject *parent);
        void setCallback(std::function<void(void)> func);
    
    public slots:
        void Slot_RecieveDat();
    
    signals:
    
    
    private:
        std::function<void(void)> m_func;
    };
    

    使用方式如下

    m_ComThread=new WorkThread(this);
    Th_ComWork=new QThread;
    m_ComThread->moveToThread(Th_ComWork);
    Th_ComWork->start();
    connect(m_serial, SIGNAL(readyRead()), m_ComThread, SLOT(Slot_RecieveDat()));
    

    该方法,可把数据读取放到子线程中,但是经实测该方法串口总非正常卡死。
    在这里插入图片描述
    可以看出,多线程已经出来了,但是还是很卡,不知道什么原因。信号传的是读到的数组。

    在线程中开启串口

    
    

    这种方法在网上看到有人提,单个人认为纯属瞎扯。

    本软件,最终会通过github开源社区共享,有意共同开发者,可留言。
    目前版本软件下载地址:https://github.com/liuning19861103/HDNT-Center

    持续更新中。。。。

    有时间争取每天都写写,希望大家支持。

    展开全文
  • 以上简要介绍了大部分的串口通信api 函数,笔者所写的串口通信软件用的是事件通知方式,该方式 是windows2000 下效率较高的一种方式。而且只熟悉这些api 函数也还是不够的,该机制下还要牵涉到多线 程和消息机制,...
  • 本篇约1070字8图分享人:张彦飞(菏泽)目录1、故障描述2、设备背景传输线路,供电与模块分布3、排故过程数据读取与分享,无线传输配置4、无线配置原理5、数据读取方法虚拟串口软件串口调试助手6、运行建议01故障...
  • MFC读取串口数据

    千次阅读 2010-10-12 20:15:00
    以上简要介绍了大部分的串口通信api 函数,笔者所写的串口通信软件用的是事件通知方式,该方式是windows2000 下效率较高的一种方式。
  • (1)博图软件RS232模块串口通信读取扫码枪数据(2)条码解析案例
  • 一、可能需要的软件:1、虚拟串口vspd(Virtual Serial Port Driver,用来在电脑上虚拟出一对串口,模拟通讯。 2、友善串口调试助手,用来发送、读取数据。 二、思路1、查询本机所有的串口 2、判断需要的串口是否...
  • 使用nwjs平台 借助chrome api读取串口数据. nwjs版本:0.13.0或以上版本(及其它环境),如果不继续开发,本文件压缩包里的文件可直接拖入nwjs运行. 调试借助软件:vpsd(串口虚拟软件) 注意,本程序打开的商品为com3端口,...
  • 树莓派通过USB读取串口数据

    万次阅读 2019-08-30 16:14:00
    树莓派串口应用配置信息配置设置验证配置编写代码 配置信息 由于工作关系,需要用树莓派实现一些测试系统的功能。本人的设备配置信息如下: 树莓派版本:Raspberry Pi 3 Model B+ 软件版本:Raspbian Buster with ...
  • 一、可能需要的软件: 1、虚拟串口vspd(Virtual Serial Port Driver,用来在电脑上虚拟出一对串口,模拟通讯。 2、友善串口调试助手,用来发送...5、通过串口读取数据,处理数据 6、关闭当前窗口时,将串口一并关...
  • 原来经过研究已经搞懂了其通讯协议,并通过KepserverEx的User-Configurable (U-CON) Driver成功实现了数据读取,但是必须要在windows下安装KepServerEx软件。因此考虑通过自己编写程序直接进行通讯。 需要...
  • 解决方案:仪表+网线(临时能找到的两根线)+RS485转USB转换器+一台电脑+串口调试软件以下为读取热表案例介绍仪表为电磁热表、modbus协议、RS485串口。须有该热表modbus通讯协议说明,用于接下来指令查找。RS485转...
  • 在VMware里的linux装minicom读取串口数据软件环境:在win7上装VMwave,在VMware里装的Ubuntu,在Ubuntu 里装的串口工具minicom. 硬件:Z-Tek的usb转串口 (内部的IC:PL2303) 1,给电脑插上USB转串口的硬件,...
  • 是用qt for windows还是直接使用VC++的MFC呢? 初步接触图形界面开发,想确定一个方向学习,或者是大大们还有什么其他IDE推荐的吗?
  • 使用pyserial读取树莓派4B串口数据并写入文件 一、使用设备 硬件:win10笔记本一台、树莓派4B一个、两个ZigBee模块,两个USB-TTL转换器 软件:win10上的串口调试工具,VNC Viewer(远程连接显示树莓派的图形界面...
  • 公司为了做地磅管理系统,所以用到了取COM口上的数据,而厂家软件要3000-4000元,所以化了二三天时间进行了开发,这是读取COM的代码,以分享给大家,系统大家有用。
  • 一、前言数据源是组态软件的核心灵魂,少了数据源,组态就是个花架子没卵用,一般数据源有三种方式获取,串口、网络、数据库,至于数据规则是什么,这个用户自己指定,本设计器全部采用第一个字节作为数据来演示。...
  • 前几天接到一个小任务,编写一个读取串口数据并判断数据,最后根据传来数据执行相应的bat文件,在网上找了很多的资料,终于......完成啦!!! 在执行此程序之前,需要在电脑上下Configure Virtual Serial Port ...
  • 关于python读取Arduino发送的串口数据将bytes转换为str问题 Arduino作为一款非常好的开源软件,在控制领域十分受欢迎。最近在做一件事就是将Arduino的数据通过串口传输到电脑,然后电脑端使用python读取数据,进而...
  • 为实验室项目做的小软件串口通信模式能够接收数据采集卡的数据进行动态显示,U盘数据处理模式能够读取文件进行静态图形显示。
  • Modbus数据点位监控曲线软件 1. 软件概述 DotTrend是一款全新设计开发...众所周知用软件Modbus Poll读取设备Modbus点位时,可以按需要的点位进行读取,点位可以改名,对应数据可以显示在对应的表格上边,这是非常方...
  • 软件目前仅提供一台电度表的数据读取,如需读取更多电表,请QQ联系。 OPC SERVER 名称:DLT645_OPCServer.Ally2Win.1 Va1: A相电压 Vb1: B相电压 Vc1: C相电压 Ia1: A相电流 Ib1: B相电流 Ic1: C相电流 P1: 总...
  • 使用C#编写的串口数据读取,并且将读取到的数据模拟键盘数据到光标所在位置。同时可以设置软件开机自动启动启动。
  • 串口调试软件读取PLC的DM0000通道数据,命令格式是怎样的? ①Hostlink(C-mode)命令格式:②Hostlink(C-mode)响应格式: ③使用串口调试工具发送ASCII码:@00RD0000000157*回车PLC的响应码:@00RD00123452*回车表明...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 563
精华内容 225
关键字:

串口数据读取软件