自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (4)
  • 收藏
  • 关注

原创 10年工程师的Modbus总结

我们来看下PLC是如何定义的,首先看一个PLC的变量地址,比如D100,这个D100是由D+100组合而成,D是存储区代号,100是地址偏移量,这样的地址模型就直接包含了存储区,这里的D100我们可以理解为绝对地址,而后面的地址偏移量100可以理解为相对地址。任何一个存储区都是有范围的,比如西门子的M区只有8192个字节,三菱的D区有8000个字,高端系列有18000个字,我们电脑硬盘也是,以前500G很大了,现在动辄1T、2T,都终究有个范围,因此Modbus的存储区也是有范围的,不可能无限大。

2025-01-09 13:51:18 1629

原创 超简单!C#上位机必备技能之实时日志

上位机使用者大都是非技术人员,他们通常缺乏专业的系统诊断能力,清晰的日志能够以直观的语言(如“设备X通信失败,请检查网线连接”)替代晦涩的错误代码,帮助他们快速理解问题,也减少了一些不必要的沟通成本。代码中提供了两种日志显示的方法,一种是最新日志在最后并自动滚动,一种是最新日志在最前面,根据个人习惯选择。1、我们希望在哪个窗体中使用日志,那么在初始化时,添加以下代码,进行委托绑定。点击右上方三角,选择编辑列,添加两列,分别是日期时间和日志内容。准备3个图标,对应Info、Warning、Error。

2025-12-11 08:47:44 327

原创 手把手教你搭建一个免费的Mqtt服务器

3、找到第531行,修改为password_file pwfile.example,这里是设置账户密码文件位置,默认是根目录下的pwfile.example,也可以修改为其他路径。安装完成后,进入安装目录,找到mosquitto.conf文件,从名称上可以看出,这是配置文件,我们主要需要对其进行一些修改配置。5、如果还想追加一个用户,可以继续执行该指令,但是要注意的是,要把-c去掉,如果仍然使用-c,会把第一个创建的用户覆盖掉。软件安装很简单,这里就不过多介绍了,直接双击按提示安装即可。

2025-12-11 08:43:24 441

原创 终于有人把MQTT通信说明白了

1、MQTT全称 Message Queuing Telemetry Transport,即消息队列遥测传输协议,1999年由IBM发布,MQTT的本质是一种应用层通信协议,传输层基于TCP/IP协议,与我们常说的Modbus、HTTP是一样的。与Modbus不同的是,MQTT协议使用的是二进制数据包,Modbus最小单位是字节,而MQTT协议会精确到每个二进制位的含义,这个其实也是与MQTT的应用场景有关,MQTT定位就是轻量级、低开销,因此需要尽量保证报文较短。这个模式与公众号非常相似。

2025-12-09 09:12:01 970

原创 终于有人把CAN通信说明白了

CAN通信起源于汽车行业,近几年发展比较迅速,慢慢在其他行业也有所应用。CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。CAN总线协议是建立在OSI七层参考模型的基础上的,但是它的模型结构只有三层,即物理层、数据链路层和应用层。说起CAN通信,可能很多人都比较陌生,但实际上我们却一直在和它打交道。随着家用汽车的普及,我们开车过程中的每次刹车、每次踩油门,甚至每次的开车门、开车窗,其实都是CAN通信的应用。

2025-12-09 09:07:41 842

原创 欧姆龙PLC仿真环境搭建及通信测试

欧姆龙PLC是工控领域市场率较高的品牌之一,有低端CP/CH系列,中端CJ系列,高端NX/NJ系列。对于上位机开发来说,主要的协议有Hostlink协议、FinsTCP/UDP协议、EtherNetIP协议,今天主要跟大家分享一下,如何通过软件来搭建仿真环境,在没有硬件的情况下,也可以进行协议测试,本文仅针对Hostlink串口通信。

2025-09-17 09:49:45 1189

原创 基于WebApi实现上位机数据接口

3、创建一个控制器HomeController,继承ApiController,并提供一个HttpGet的方法GetPlcData,代码如下:​​​​​​​。2、浏览器输入http://127.0.0.1:3000/api/home/GetPlcData,即可获取PlcData的数据。在上位机开发过程中,很多时候需要提供数据接口给Mes或第三方平台。1、首先我们参考PLC程序创建好一个PLC实体类。首先我们实现一下西门子PLC的数据采集。为了快速实现,我们采取读取类的方式。

2025-09-17 09:43:44 583

原创 C#与倍福TwinCAT3进行ADS通信

因此,倍福的PLC编程更偏向于软件编程,对PLC编写人员的要求更高,但是似乎关于它的资料比较少,价格也比较高。接着按照下图图标,点击登录到,提示激活851端口,选择是,最后再点击启动图标,至此仿真PLC便运行起来了,我们可以看到a和b变成了我们设置的值。编程软件的安装基本上没什么说的,只有一个exe,直接用管理员权限运行即可,安装过程直接下一步,最好选择完全安装,安装完成之后重启电脑。创建项目并打开后,找到PLC,右击添加新项,创建一个标准PLC项目,标准PLC项目的好处是会把PLC的基本框架搭建好。

2025-09-06 11:19:29 636

原创 上位机通信速度有多快?

控制层与设备层通信,一般指PLC、DSC对接伺服、变频器、远程IO等,实时性要求会比较高,所以我们可以看到近些年工业的发展,以太网逐步替代串口RS485,Profinet逐步替代Profibus,以EtherCAT为主的各种总线的广泛应用。以三菱PLC为例,一次性可以读取960个字,2000个位,这个项目总共有400多个变量,集中在D区和M区,我跟PLC工程师沟通好,只需要读取300个D寄存器和200个M存储区,这样只需要2次交互,通信周期可以达到5-10ms。这种场景更注重稳定性和兼容性,而非高速传输。

2025-09-06 11:16:33 1088

原创 为什么劝退你学上位机

真正从事上位机工作,你会发现你是一个人在现场,调试期间可能会遇到各种问题,还可能会有甲方的刁难和同事的冷眼旁观,如果平时不注意积累,不提高解决问题的能力,不多遇到一些问题,然后解决掉,等现场遇到问题时,你会发现你没有思路,只能傻眼求救,最终吃苦的还是自己。上位机是一个小众的领域,是工控领域的一个分支,这几年很多人了解到这个领域,想要去从事这方面的工作,如果是一个销售,必然会推荐你去学,去买他们的课程。我的理念一直是打好基础,基础不牢,地动山摇,不要急于求成,静下心来学一段时间,慢慢你会明白我说的。

2025-09-05 09:06:11 787

原创 学上位机需不需要买硬件?

其实学习上位机的成本很低,因为有各种各样的软件可以来搭建仿真,比如学习Modbus,我们可以用VSPD+ModbusPoll+ModbusSlave,西门子、汇川等PLC都支持仿真环境。很多人学上位机可能是一时兴起,当然这并不是坏事,学习需要兴趣驱动,但更重要的是持续的热情和执行力,所以前期不要买任何硬件,因为你都不知道自己能不能学下去。一个是主观的想法,一个是客观的需求,如果自己既不想学,也不要学,那后面那些问题都不用考虑了,如果自己既想学,又要学,那后面那些问题都不是问题。

2025-09-05 09:05:10 948

原创 C#上位机与组态软件的那些事儿

WinCC的数据库使用的是SQLServer,WinCC变量归档数据是以压缩的形式存储在数据库中的,第三方开发的应用程序可以通过WinCC提供的OLE-DB接口解压并访问这些数据,也可以通过Ado.Net的方式。所谓组态软件,就是厂家已经将各种模块都封装好,我们只需要拖拖拽拽结合可视化的配置就可以开发好一个软件,某些复杂的功能需要配合脚本来实现,一般过程控制会使用较多,如果是运动控制、机器视觉或者MES等就无法实现了。首先,我们使用WinCC创建一个空的项目,项目名称为WinCCPro,便于后续测试。

2025-09-04 09:35:11 1216

原创 终于有人把校验说明白了

误码会导致数据错误,错误的数据带来的影响是巨大的,因此通信务必要保证报文的正确性。待检验报文从头开始,每16位进行一次加法计算,如果遇到进位,则将高于16字节的进位部分的值加到最低位上,这样最终计算出来的和进行一次反码运算,就是检验和。此外,如果报文没有传输完成,但是接收方认为传输完成了,会导致收到的报文是不完整的。校验一般会有两种形式,一种是底层的校验,比如串口的奇偶校验、以太网的校验和,另一种是应用层的校验,比如CRC校验、异或校验等。常用的应用层校验有CRC校验、LRC校验、异或校验、累加和校验等。

2025-09-04 09:34:05 555

原创 不用买PLC了!国产汇川PLC仿真环境搭建

我们接下来测试一下ModbusTCP通信,默认的PLC程序是不支持ModbusTCP通信的,我们需要添加一个ModbusTCPSlave的模块。我们任意选择一个网卡,这里以自建网卡为例,网卡类型是Microsoft KM TEST环回适配器,这个名称要记住,后面下载程序的时候会使用到。2、右击LAN1,添加设备,我们可以看到一些扩展模块,选择ModbusTCPSlave,点击添加设备。1、使用虚拟机的网卡:如果电脑安装了虚拟机,电脑会多出一个虚拟机的网卡,这个网卡我们可以使用。

2025-09-03 10:45:33 1785

原创 上位机通信 VS PLC通信

我分析了一下,既然ModbusPoll测试没问题,而PLC通信不上,那么可能是PLC程序发出的报文与ModbusPoll软件发出的报文不一致,因此需要监听一下PLC发出的报文内容。前段时间承接了一个地磅的上位机项目,需要采集进出场两个地磅的数据,设计思路是使用两个串口服务器,将RS485转换成以太网,PLC通过ModbusTCP通信采集地磅。那天跟PLC工程师一起到现场,发现他带了一根485的通信线缆,他说昨天测试发现PLC无法通过ModbusTCP采集到地磅数据,实在不行就改成ModbusRTU通信。

2025-09-03 10:43:44 940

原创 2025年了,学C#上位机需要什么条件

无论是免费或者付费的课程,本质都是给我们学习指引一个方向,它们之间的主要区别在于付费课程的视频更系统、资料更完整、会提供必要的答疑,这样,我们不至于被一些很简单的问题浪费大量的时间。年龄20-45岁之间,学历大专以上,计算机或自动化相关专业,会更符合企业的招聘要求。关于学习路线,我专门设计了一套零基础快速上手的课程,课程目录就是学习路线。关于学习方法,我建议找付费的课程去学。不要去找免费的,因为免费的是最贵的。免费的视频,反而会浪费更多的时间。因为我自己也是零基础学出来的。学习的本质是自我学习。

2025-09-02 13:53:48 582

原创 终于有人把TCP/IP协议说明白了

通过上述10个问题的分析,我们对TCP/IP应该有了一个更深刻的认识。Socket并不是某个语言独有的,基本上所有的语言都有Socket。以C#语言为例,Socket就是一个类,创建并实例化Socket对象,调用Connect实现的就是三次握手,调用Close就是四次挥手。在实际开发中,我们常说的S7、MQTT、OPCUA、Modbus等协议,指的都是应用层的协议,我们大多数情况只需要关注应用层协议。

2025-09-02 13:50:37 1141

原创 西门子S7通信协议抓包分析应用

如果要说起西门子的通信协议,相信大家多多少少能说出一些,比如MPI、PPI、USS、Profibus、Profinet、S7等,但是西门子在协议的开放性方面要相对要封闭一些,所以我们是没法知道这些协议的底层通信原理的。本文主要是结合Wireshark抓包工具,跟大家去分享一下,如何抓取西门子S7通信协议底层通信报文的,希望通过报文分析,让大家都能够对西门子S7协议有所了解的同时,也学会基本的抓包操作与报文分析。S7协议不是一个开放的协议,因此没有完整的协议文档,本文只是通过抓包的方式来分析和了解报文。

2025-06-20 23:48:35 1419

原创 C#上位机实现报警语音播报

点击引用,右击添加引用,在程序集中,找到System.Speech,这个库是Windows系统自带的,所以直接点击确定即可。接下来我们对System.Speech这个库进行封装,核心围绕SpeechSynthesizer这个类。我们在开发C#上位机时,有时候会需要将报警信息通过语音进行播报,今天跟大家分享一下具体的实现过程。3、开始播报和停止播报方法,这里建议使用异步SpeekAsync。选择朗读者,输入播报内容,点击开始播报即可。4、编写调节语速和音量的方法。5、获取和选择播放的音色类型。

2025-06-20 23:47:05 731

原创 C#上位机通过WebApi访问WinCC

启用REST需要证书,需要先签发一个证书。在左侧用户管理器中右键单击Administrator-Group,添加一个新用户,我这里为admin,也可以取其他名称,然后在右侧设置一个密码,并在权限列表中勾选刚才新添加的权限。接下来我们使用Apifox进行测试,我们首先进行权限设置,点击Auth,类型选择Basic Auth,UserName和Password输入我们前面设置的用户名和密码。选择REST设置,勾选 通过REST发送变量值,点击端口证书,选择我们刚刚创建的证书,后面的URL我们等下会使用到。

2025-06-19 22:19:04 2308

原创 不会PLC,怎么学上位机?

西门子PLC存储区主要有I区、Q区、M区、DB存储区、V区(即DB1),对于C区计数器和T区定时器,一般使用较少,我们一般主要使用DB存储区/V区。从数据类型来看,PLC存储区无非分为3类,一类是以字节为单位的,一个是以布尔为单位,一个是以字(即寄存器)为单位。从读写特性来看,对于PLC来说,除了输入存储区,比如西门子的I区,三菱的X区,其他存储区都是可读可写的。综合来看,对于我们来说,PLC存储区只有两种,一种是西门子PLC,另一种是其他PLC。我认为是可以的,但是要了解一些PLC的基础知识。

2025-06-19 22:15:42 1069

原创 C#上位机通过WebApi对接DeepSeek

3、然后我们就可以使用API测试软件(Postman/Apifox)来进行测试,这里使用Apifox软件,我们创建一个新的接口,类型选择POST,将第二步中的url复制进去。在实际开发中,不同的项目Mes提供的文档都会有所不同,但是思路都是一样的。5、选择Body,类型选择json或raw,将第二步中的content内容填进去,然后点击发送即可,等待一会之后,我们就看到返回信息了。1、点击API接入之后,会打开一个窗口——快捷API接入,第一步先创建一个API Key,这个就是密钥,后面代码中会使用到。

2025-06-18 17:58:46 1135

原创 一文说清楚PLC、运动控制卡、运动控制器

1、PLC以逻辑控制为核心,适用于工业自动化中的顺序控制、信号处理等场景,对于运动控制,中低端PLC主要通过高速脉冲控制,高端PLC一般会通过总线的方式来进行控制,常用的总线包括Profinet、EtherCAT、CC-Link等,编程方式主要采用梯形图、ST/SCL等编程语言,适合电气工程师快速开发。3、运动控制器与运动运动卡算法功能几乎一致,主要区别在于运动控制卡需要依赖于PC编程,而运动控制器可以独立运行,一般会有专门的IDE,使用偏底层的语言编程,如Basic,适合有一定编程和学习能力的工程师。

2025-06-18 17:46:17 1883

原创 再也不用担心串口通信扯皮了

曾经在做一个单片机通信的上位机项目时,就用这个软件快速抓取报文,省去了很多扯皮的时间。硬件方案的原理很简单,以我们常用的RS485为例,在原有通信设备的发送(TX)和接收(RX)线路上并联接入监听设备,这样就可以在不影响主链路通信的同时获取双向数据流‌。以太网通信,很多人都知道可以使用Wireshark软件,如果是串口通信,我们如何抓取到报文,且不影响程序正常运行,今天给大家分享两种方案。这个软件本身是商业软件,其提供的免费功能基本可以满足日常使用,当然大家如果有更高需求,可以支持一下原作者。

2025-06-18 17:40:46 1202

原创 终于有人把OPC说清楚了

2008年,OPC基金会发布了OPC统一架构(Unified Architecture),即OPC UA,这是一个独立于平台的面向服务的架构,它集成了现有OPC Classic规范的所有功能。OPC通信基于服务器-客户端模型,如果要实现OPC通信,首先需要搭建一个OPC服务器环境,这里我们采用比较主流的KepServer软件,硬件采用西门子S7-1200PLC,通过KepServer对接S7-1200,然后作为服务器,可以通过OPCDA或OPCUA进行访问。集成化的安全机制可确保在互联网上的安全通信。

2025-06-17 16:52:19 2521

原创 终于有人把欧姆龙PLC通信协议说清楚了

其中0x00 0x0A 0x00 0x14 0x00 0x1E 0x00 0x28 0x00 0x32即表示D0-D4的值,进行数据解析处理后的值分别为10、20、30、40、50,与PLC数据一致。FinsTCP通信协议,与ModbusTCP和MC协议有一个不同地方在于,当我们完成TCP连接后,不能直接进行读取或写入,需要有一个握手过程,以保证通信安全。所谓通用格式,就是无论发送、接收的报文都会按照这个格式来,会将变化的部分封装成一个整体,一般叫做数据部分或者Parameter。

2025-06-17 16:50:56 3798

原创 上位机多PLC多协议开发思路分析

上位机开发第一步需要有通信库,通信库的本质就是一个类库项目,最终编译成一个dll文件,里面包含了各种协议类,我们可以通过创建通信对象,调用其读写方法,实现与PLC之间的交互。这样对于我们来说,每个PLC就是一个Device对象,我们只需要调用一行代码即可将配置文件解析成设备对象,多个PLC就是设备对象的集合。PLC技术发展多年,不同的制造商在早期都采用了不同的通信协议,随着时间的推移,这些协议已经成为了行业标准,很难在短时间内进行统一。每个Device类中,会有若干个组,单个组抽象成一个Group类。

2025-04-01 08:56:14 599

原创 学会这几招,没有连不上的PLC

S7通信协议是基于TCP/IP的,西门子PLC作为TCP服务器,端口号是102,上位机作为TCP客户端。一般情况下,如果可以Ping通,一定是可以连接上的,除非IP地址弄错了,因为西门子PLC的102端口是自动开放的。因此M区是西门子PLC都自带的存储区,DB存储区需要手动创建,当然读取I和Q也可以。那么接下来,我们打开网络调试助手去连接PLC,看看能不能连接上。此外,如果可以读到数据,但是值不对,那就是数据解析的问题了。首先,我们要排除网络的问题,保证可以Ping通。如果可以连接上,那么我们进入下一步。

2025-04-01 08:52:46 1824

原创 使用C#创建安装Windows服务程序

5、点击添加安装程序之后,会自动添加一个ProjectInstaller界面,里面有两个组件,分别是serviceProcessInstaller和serviceInstaller。7、接着选择ProjectInstaller进行设置,主要设置Account,指示用来运行此服务的账户类型,可以设置为LocalSystem。在实际工作中,如果我们需要开发一个运行在后台,无需用户交互,不需要界面的应用程序,我们可以通过Windows服务来实现。接下来,我们使用这个exe来进行安装和卸载Windows服务。

2025-03-20 09:06:42 1110

原创 Modbus协议的一些不足之处

如果在这两次交互时间差之间,其他位的值发生了改变,那么第二次交互时会将其他恢复回第一次读取到的值,因此如果必须使用寄存器位操作,要注意变量的重要性,以免造成一些严重的后果。Modbus协议主要应用在设备层的一些仪表及控制层的一些PLC控制器中,所以大部分情况下都是局域网的应用,因此基本上不会出现黑客攻击或者数据篡改之类的问题。那么意味着字节计数的最大值是255,返回报文中的字节计数是读取寄存器数量的2倍,因此读取寄存器的数量最大值是255/2=127。Modbus的功能码中,是没有针对寄存器位写入的。

2025-03-15 16:04:01 661

原创 三菱PLC的MC通信协议报文解析

其中0x0A 0x00 0x14 0x00 0x1E 0x00 0x28 0x00 0x32 0x00即表示D0-D4的值,进行数据解析处理后的值分别为10、20、30、40、50,与PLC数据一致。通信编码格式有ASCII和二进制两种方式,通过二进制编码数据进行的通信与通过ASCII编码数据进行的通信相比,前者的通信数据量约为后者的二分之一,因此二进制编码的方式通信效率更高。很多人在学习三菱PLC通信协议时,很头疼的是三菱PLC有很多种通信帧类型,每种通信帧又有ASCII和二进制两种编码格式。

2025-03-15 16:00:18 6104

原创 上位机与西门子PLC通信掌握这几点,效率翻倍

但是MaxPDUSize并不是一次性可以读取的字节数,是报文的长度,实际读取的字节数,需要在此基础上减去包头的18个字节,因此S7-200Smart/S7-1200/S7-300一次可以读取222个字节,S7-400一般是462个字节,S7-1500一般是942个字节。我们可以看到,这个是通信库底层做了分包处理,比如读取1000个字节,会分成222-222-222-222-112五次去读,然后将结果拼到一起返回,虽然可以读取,但是耗时仍然会是单次通信周期的五倍。

2025-03-14 09:31:30 1963

原创 C#上位机基于SMTP实现邮件报警通知

SMTP是一种提供可靠且有效的电子邮件传输的协议,是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。发送者邮箱需要开启SMTP相关服务,这个一般在邮箱的设置中,可以找到。开启服务之后,会生成一个授权码,这个授权码很重要,后面代码中会使用到。今天跟大家分享一下C#上位机如何基于SMTP协议实现邮件报警通知。我们结合前面介绍过的沿信号检测来做个报警发送邮件到指定邮箱的案例。首先我们要准备2个邮箱,一个作为发送者邮箱,一个作为接收者邮箱。

2025-03-14 09:29:24 855

原创 C#上位机实现沿信号检测

首先我们需要创建一个类,这个类就像PLC编程中的指令一样,拖一个指令到PLC程序中,相当于实例化这个类的实例,其实C#代码的实现和PLC指令的实现原理是一样的,只不过在PLC中,是厂家封装好了,我们直接使用。我们可以参考上述代码编写一个下降沿检测的类,也可以将上升沿和下降沿检测放到同一个类中,通过构造方法传值来判断为上升沿或下降沿。三、在实际应用中,我们可能需要考虑信号抖动的情况,可以在原来的基础上,增加一个防抖动的功能,同时,为了考虑线程安全,加上锁处理。下降沿是指信号从高电平到低电平的变化瞬间。

2025-03-13 11:31:20 892

原创 WinForm实现窗体自适应缩放

二、在FormAutoSize类的构造方法中,初始化宽度、高度和窗体对象,同时将各个控件的宽度、高度、左边距、上边距以及字体大小,按照指定的格式(这里使用分号拼接)存储到AccessibleDescription属性里,因为AccessibleDescription属性很少使用,所以存储到这个属性里。三、接下来就是如何重置窗体控件布局,这里将当前的宽度高度与初始宽度高度进行相除,会得到比例系数scaleX/scaleY,然后将这个系数叠加进去,得到新的宽度高度等属性值,然后重新设置控件属性即可。

2025-03-13 11:27:57 2044

原创 Modbus这样学,没有理由学不会的

第九阶段就是要去编写一个ModbusTCP协议的上位机,我们之前做过西门子S7协议版本的加压站,那么就可以很轻松改成ModbusTCP协议的,这里我们使用西门子和三菱PLC,其他PLC,只要支持ModbusTCP协议,也是类似的。第七阶段就是要写ModbusTCP通信库了,ModbusTCP通信库其实是以太网通信与ModbusTCP报文的融合,学会ModbusTCP通信库,其他以太网通信协议都可以触类旁通了。9、ModbusTCP-10功能码读取输出线圈。4、ModbusTCP-03功能码读取输出线圈。

2025-03-12 13:28:57 1295

原创 基于NSIS轻松实现上位机项目打包

首先要准备好要打包的程序,一般我们开发的WinForm或WPF项目,可以直接把Debug或Release文件夹复制过来即可,一定要确保双击文件夹里的exe应用程序,可以正常打开程序,对于.Net环境建议单独安装。2、支持大多数 Windows 平台,包括:Windows 10,Windows 8,Widows 7,Windows NT,Windows 2000,Windows XP,Windows 2003。4、在NSIS脚本向导中,按照提示填写应用程序的相关信息,这些信息不是必填项,然后点击下一步。

2025-03-12 13:26:50 777

原创 电脑直接EtherCAT就可以直接控制伺服

8、点击打开之后,回到从磁盘安装界面,点击确定,然后一直下一页即可,最终我们可以在设备管理器中,看到ZMotion_Device,下面有个ZMotionRT Controller,即说明控制器驱动安装完成。7、点击【浏览】,在前面下载的MotionRT7文件夹,找到rt1028_signed文件夹,再选择driver_signed文件夹,选择ZMotionRt64.inf,点击打开。1、点击我的电脑,右击选择【管理】,选择【设备管理器】,在右侧的设备列表中,任意选中一个。

2025-03-11 17:15:58 3264

原创 C#调用SQLite数据库经常遇到的一种错误

2、对于SQLite来说,System.Data.SQLite.dll是通用的,不通用的是SQLite.Interop.dll,因此,我们会把32位和64位的SQLite.Interop.dll放在两个不同的文件夹x64和x86里,这两个文件夹里放的都是SQLite.Interop.dll,但是两者是不同的,我们通过文件大小也能看出来。大家在学习过程中,遇到问题首先要看错误提示,虽然有的错误提示会比较鸡肋,但是大部分情况下,都要根据错误提示来分析。

2025-03-11 17:14:12 564

原创 C#上位机与PLC通信心跳的实现方法

3、心跳程序编写:心跳地址数据变化只需要定时写入值即可,心跳检测程序,可以采用接通延时定时器来检测值的变化,如果在规定的时间内未收到心跳信号,系统应该及时发出警告或采取措施。如果我们想让PLC知道连接状态,那么上位机就必须定时给心跳地址写不同的值,这样PLC就可以通过检测这个地址值是否发生变化,来判断连接是否正常。如果我们想让上位机知道连接状态,那么PLC需要定时给心跳地址一个变化的值,上位机通过检测心跳地址的值是否发生变化,来判断PLC是否在线。心跳地址为布尔:定时给心跳地址取反写入,然后检测变化。

2025-03-10 15:09:11 993

C#实现ModbusRTU通信测试的Demo

C#实现ModbusRTU通信测试的Demo

2025-03-06

C#连接西门子PLC并实现报警发送邮件到邮箱

C#连接西门子PLC并实现报警发送邮件到邮箱

2025-03-06

TeeChart控件及注册工具

包含Teechart.ocx控件,并且基于该OCX控件编写了一个可以快速注册的小工具

2018-11-28

MQTT服务器及客户端

MQTT的服务器和客户端软件,源代码,基于MqttNET这个开源组件实现

2018-12-25

DMC2410资料.zip

雷赛DMC2410运动板卡的入门资料,便于初学者快速学习。

2019-07-19

serialPort

教你如何使用serialPort进行串口通讯

2015-04-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除