粉丝468获赞1449

上位机通信基础二零二五版本教程一共二十六分钟,带你了解一、上位机基本概念,二、上位机通信过程零基础小白也能看懂的教程六六六教程原码给大家全部安排。 大家好,呃,这里是朝夕教育啊,一对一办学式服务上位机专题。呃,那么从这阶段开始我们开始了解这个上位机方面的内容, 整个内容呢?整个内容来讲的话呢,咱们分的两个部分啊,一个部分呢主要是讲这个叫啊叫创口啊,通信以及相关比较常见的这个协议 啊。然后呢下面呢还有一个第二个阶段呢,就是关于网口的啊,这个通信以及相关的协议,比如一台网的 啊,一会这是关于咱们那个大概的一个,呃,两个阶段的一个内容啊,那么关于创口这边呢,我们分为说啊,最基本的环境啊,包括咱们的创口基本对象啊,以及呢像咱们的啊,这个协议的这个逻辑协议的比较常见的啊,这个相关的讲解啊,它里面的有哪些格式 啊?往下走的话呢,像这个网口这边呢,我们主要是一样的啊,差不多结构啊,你像比如说那个通行环境啊,是吧,包括网口对象啊,网口对象呢,还有两个啊,但是问题不大,基本上都是一样的啊,我后面会啊,到时候一起来介绍一下一些了解一下。 往后关于通讯协议呢啊,分为两部分啊,一部分呢也是关于 modus, 因为 modus 它这个本身来讲啊,它这个是吧,对于不同的方式它都支持啊,我们的也是对在这网口这边呢,给大家介绍一下啊,后面呢还有个比较常见的啊,就是西门子的啊,一个 plc 的 开发的,我们的通讯叫 f 七协议 是吧?啊,大概也就这么一个结构啊,这个就是关于咱们下面两阶段的啊,一个内容的安排 好。呃,那在这之前呢啊,我们了解了这个相关的这个结构之后啊,课程结构之后,那么先了解一下关于啊,什么是商务机通信是吧,因为有些小伙伴可能对商务机的不是很了解 啊,商务机通信呢,就是指的是工业啊,自动化,比如说像互联网啊,比如说像轻柔式啊等系统啊的领域里面非常关键的一个金融环节 啊,主要是用于主控计算机啊,也就是上位机是吧,我学了半天啊,什么上位机,大概了解就是主控计算机,它以终端设备,比如下位机,也就是下位机啊,比如说呢,像 plc 啊,传感器,直因器是吧之类仪表等等这些它之间的数据的交互。 呃,那么这个当然这是一个概念的说明,那我们接下来呢会就是把那个再拆解一下啊,给大家介绍一下 啊,以下呢就说同概念啊,通行过程啊,常见的啊,这个通行方式,注意事项等方面呢,就是想要说明一下是吧。啊,首先第一个关于上网机,刚刚说的是什么啊?就是主控机,主控计算机是吧,其实啊也就是才 pc 啊,你像比如说如果,如果是公共机的话,其实现在也就是什么 pc 电脑吧 啊,然后呢,主要是负责监控啊,数据采集,逻辑的一个控制和人机的交互是吧?啊,我们有经常有小伙伴能够去看得到啊,有现场的小伙伴能看到啊,特别是咱们从这个电信啊自动化机械着转行的小伙伴是吧? prc 转行的小伙伴都知道他这么一个过程。 呃,主要的功能演示功能呢啊,就比如说比较常见的啊,像,比如说像接收传感器的数据是吧?下发的控制指令啊,以及呢生成生成这个摄像报表啊,报警处理啊等等啊这些这些功能 啊,这是上位机的啊,好。呃,有上位机呢,肯定是下位机啊,因为上位机这个概念它是个相对的是吧?那包括啊这个下位机这边是吧?那么包括咱们能够直接连到上位机的这种物理的终端控制器啊,比如说像 plc 啊,单面机前面有这个介绍啊, 啊,包括接入式系统等等是吧?呃功能一般,比如说像数据的信,就是温湿度的信号的传递是吧?电机的启停啊控制,那包括呢?执行咱们的逻辑运算等等,这就像我们的 plc 是 吧?它是可编程逻辑控制器是吧?它里面可以写程序啊,程序呢就是它的固定的一个代码, 固定一个逻辑,然后一直走,一直走一直走啊那个过程,但是他呢也相对咱们如果在下下午机里面呢,咱们也是属于是一个啊下午机的概念啊,上午相对上一集来讲,如果在咱们上午机来接空的话,那这里有个图啊,我来给大家去打开给大家看一下 啊下午机的概念啊,上午相对上一集来讲,如果在咱们上午机来接空的话,那这里有个图啊,我来给大家去打开给大家看一下。 嗯,好,来这里呢,就这个图呢,就是一个比较典型的啊,一个架构啊,你比如说这边是空 pc 嘛,公共机是吧?那下面这是 plc 啊,这个像这种结构之下,那它呢就上午机,它呢就是下午机, 对吧?当然呢,这是我们比较常见说的啊,上午去开发,开发什么开发?就在这上面写一个程序啊,然后这个程序呢去控制它,你本身来讲它自己的那个,比如说操作系统也好,包括什么系统下,它不不符合啊,那种监控的这种逻辑要求,对不对?我们需要的 把这个程序,你的业务的这个场景啊,这相关的相关的业务需求,是吧?通过我们自己写的软件呢表现出来啊,让它去控制我们的 plc, 自然啊,当然呢,其实说如果说我们下面有一些,比如说数据化的设备啊,你比如说像什么直寻器啊,智能仪表之类的传感器这些啊,其实呢有相应的接口啊,咱们的这个公共机呢,也可以直接去控制它 啊,也可以直接控制他啊,所以呢这个这个过程呢,这个结构呢,是我只是说非常典型的一个结构啊,但是,呃,很多场景呢,可能会比较复杂啊,比较这个咱们根据实际情况来,他不管怎么说啊,不管怎么说被他控制的啊,就是下胃机,他呢就是主控的上胃机 啊,这是一个基本概念啊,大家先理解一下。好, ok 啊,这是关于咱们上下位的一个理解,那么呃,在这个过程中啊,在这过程中呢,大家可以看到,是吧?你这个上下位,他怎么去把咱们的这个数据对接起来呢?来通信的本质 啊,通信本质。那么通信的本质呢?其实就是上下位呢?他通过特定的协议和硬件接口是吧?实现双向的数据交换 是吧?就好像说咱们这个图一样是吧?那你比如说我,我,呃,这个公共机,我想去读它里面的什么什么状态呀?什么数据啊?啊?比如温度、数字、湿度、压力值啊等等这些的。那你是不得给他请求一下来请求他啊,请求他之后呢?然后把他把是把数据发回来 这个过程中啊,他肯定得必须得有一个。什么,有一条路是吧?有一条线路啊,能够去接的通是吧?那这个线路的话呢?我们可能说,比如说有特定的这个接口方式的,这种线路啊,能够去接的通,是吧?那这个线路的话呢?我们可能说,比如说有特定的这个接口方式的这种电缆,是吧?来进行这个呃串接。 哎,所以说这中间呢需要什么?需要一个硬件接口啊,他能把线接下来啊,但中间也强调说有协议,因为呢,你有这个硬件接口之后,那中间我传发什么数据过去,是吧?他能知道说他要干什么,你要干什么?那这个呢是叫协议来规定的数据格式,你要传什么数据给 他是吧?你要请求,你要请求,你要发送指令呐?这指令也是数据吗?对吧?也是一种,那数据呢?每个数据什么格式呢?那就是写一首规定的 啊,这就是通信的本质。那么典型的啊场景,你比如说声音上传啊,上下位机是吧?将设备状态的什么温度压力发送给上位机啊,下发指令呢啊?上位机呢?控制,咱们的这个放的控制指令是吧?下发给这个下位机,其实这中间呢 这两个呢其实没有什么特定的这个啊,这个这个场景要求是吧?啊?你比如说我有时候啊,咱们的上学期要请求啊,那个下学期里面数据,那你也是先发送,然后呢下学期再响应给你是吧?这是一个啊应答过程 啊,应答过程你发送给请求我给你个响应啊这个应答过程,好吧,就是关于啊这个通信这块的东西。好了啊,来这块东西这一块到目前位置啊,咱们的这个上街通信的一个,呃就是他的角色是吧?在上街通信过程中啊,他这个基本角色呢?我们这些概念啊,咱们先聊一聊这个地方。 那么好啊,前面呢我们呃了解了这个上下位机的啊,这个基本概念是吧?也就是知道说把它里面其实也就是,呃怎么样把这两台设备把它连起来啊,让他让他们之间呢,然后进行这个数据的互联互通 好。呃,但这个过程中呢还是肯定不是说概念上这么简单,对吧?咱们看一下,那么接下来就说如何建立起啊这个同一连接,那你这个相当于是我们要想付先修路是吧?你现在得把路连起来, 两个设备之间是吧?先把路连起来,有了路之后我们才能去讲这个数据传输的事,是不是啊?那关于这个,呃建立通信呢?建立通信的连接呢?是吧?第一个我们从硬件接口方面来来进行处理啊,来进行区分。 呃应用接口上面呢,其实差还有很多啊,因为呢,这个啊,不同的设备他可能选择不同的啊这种通信方式啊,因为通信接口是吧?因为不同的通信接口他的数据的,他的传输的效率啊,他是不一样的,是吧?不一样的啊,你比如说比较常见的什么创口通信呢, 是吧?那什么二三二啊,四二二四八五是吧?那也就是串不同线啊,那么一台网呢?比如说 t c ip 啊,一样的 ip 啊,是吧?哎,就是它有些特点啊,大家可以看一下这它的框里面它的特点是吧? 它也包括工业总线啊,总线的话呢,它它处理上就是啊,就是在一个,呃,像那是高速公路一样,是吧?它的效率更高啊,高舒适性的啊,效率更高一些, 还包括无无线通信。呃,无线通信之所以把它捏到这啊,其实主要的并不是说啊,这个是比较特殊的一种,你比如说像 wifi, wifi 的 话,它其实也是以太网的一种啊,对吧?如果它是通过无线的方式去实现的啊,这个以太网的,它的, 呃这个传输模式是吧?但是呢像蓝牙啊,像 nara 啊,这是这是 nara 啊,这是那个什么?就是互联网里面的这个通讯的啊,接口的一个标准,是吧?哎,这叫硬件接口,就是说你比如我在电脑上面是吧?你可能说有一个那个插网线的那个口啊,那个口其实就是一个接口,是吧?那就是一台网接口 是吧?你要如果还有什么串口接口,串口我们后面还说啊串口接口什么样的,是吧?咱们到时候会这个,呃,这个用一个图片给大家介绍一下是吧?哎,这是他硬件接口方面的一些介绍啊,但是我们在这个通信过程中呢啊, 这个注意了啊,朋友们啊,就是说我们在通信过程中啊,要以这个设备方来为准啊,设备这边你要对接的设备,因为因为这攻击来讲他是要, 呃比较通用一些的啊,也比较通用一些,因为我的程序可能说我要根据我的设备来进行携带嘛,你设备这边呢采用什么样的方式啊?来进行这个通信是吧?那我公共机这边呢,或者我 pc 这边呢,商务机这边呢,就要按照使用方式来进行通信 是吧?因为,呃,有时候呢,可能说涉及到这个一个设备上有多个接口的啊,但这个呢得约定一个啊,约定约定一个,这个具体是哪一个啊?这样的话呢?通讯上好多通讯不同的接口,通讯上不一样的,是吧?你看为什么我们要单独去讲窗口,单独讲网口啊,是吧?这两个他是不一样的这个方式 啊,这是关于这个啊,所以这个关于接口方面呢,大家其实了解型的啊,了解型的不一定不一定说一定得全部得记住啊,因为这个东西其实只要是拿到啊,这个通信的环境下面之后,是吧?咱们的设备是什么啊?一看就知道,好吧, 那么另外一个呢,你看,比如说我来给大家举个例子啊,你看这个啊,这就是台 plc 对 不对? fx 五 u 啊,三零的 plc, 你 看这个接口是吧?你看很明显它呢就是一个网线接口, 那一般来讲啊,就是可能说啊,咱们大部分情况就是都是通过这个网口来进行通信的,你插网线,无线网线往上插, ok, 咱们这个电脑上就可以连上去。 就是啊,那这个连接不是说你通过物理上的连接啊,我们说除了物理之外呢,如果要通信还有在软件层面、代码层面去处理啊,这个咱们从物理层面咱们找到这个接口啊,但是这盖板下面就是盖板啊,盖板可以掀开啊,掀开里面呢?还有这个就是接线端子啊,这也可以接线的这个通信线的 啊。呃,就是这个有些设备上肯定有多种啊,但是我们要约定一种,刚刚说的对不对?哎,好, ok, 这是关于咱们硬件接口方面的一个了解。 呃,往下走的话就是协议的这个啊相关的。呃,协议的话呢?就是说你看我们这个物理接口已经接起来了啊,就是我两个设备之间呢这个通信的可能啊,通信的通路已经建立起来了,是吧?通过哪种方式? 那建起来之后呢?这些内容呢?都是可以让我们去传输啊,一些数据过去的,是吧?对方啊,传输对数据给对方的。 那这个对方的话呢?啊,我不能说啊,因为一般来讲这个这个传输数据,传输数据都是数字吗?是吧?啊?什么?这个具体数字多少是吧?往往往里面传传一二三四五六这样传, 但是具体说,你看我我你,你再发一个信息给我啊,我再发个信息给你啊,我我要请求一个信息,我发个给你啊,发个指定给你啊,你要根据我做的指定,是吧?来响应什么数据啊?你看这个过程中啊,想到一点就是说我这个发送的这个数据他是不是得有一定的含义啊? 好,这是关于什么?就是字数据的格式啊,大家强调一点。呃,那么接下来的话呢,就是这个过程中啊,就是我们的数据交换的过程呢,有这么几种啊有这么几种。第一个呢就是轮询 啊,轮询的话呢,就是你上文机啊,你比如说我们在这个环境之下,对吧?你比如说我这个啊,公务机我想从它里面去拿一个什么什么值,比如说温度值、湿度值、压力值、流速等这些,我想把它拿过来,对吧?那怎么拿 啊?有几种?有这么几种方式是吧?那第一种那你你要拿是吧?那行,那你告诉我呀,你告诉我告诉我给你拿是吧?我也我也反馈给你是吧?这些东西就你放大发送请求,请求完之后呢,他一看,哦,你要拿这个,好,那我把这个返给你 啊,他把这返给你。这是一个比较常见的方式啊,我很多这个上我基本上就是这种方式来进行处理的。好吧好,那这种方式呢?这个就看你发请求他就响应给你是吧?你不发呢他就不响。 对,好,那这这是第一种啊,等于是第二种呢,叫中断啊。中断其实这个名词写的呢不是很准确啊。呃,其实你可以这么理解,他其实就是你的下位机主动的把数据呢反馈给你 啊,主动把分数返给你,什么意思呢?啊?我现在呢有有这种情况啊,就是说我的这个商位机以商位机为标准是吧?商位机的我在启动起来。启动什么 啊?比如说我反正一个服务器或者叫主机嘛,是吧?主机啊主机呢?哎,然后呢?它在程序啊,我打 p l c 是 吧?在启动的时候呢,它会在网络里面寻找一个主机啊,寻找着,比如说它是吧?好,那我们看这个寻找之后呢?然后它连上去, 哎,粘上去之后呢?然后呢?就他会主动的把数据发给他啊,主动发发给他,当然呢你说我我我这个上过机,我公共机我要主动连给 plc 是 吧? plc 连成功之后呢? plc 呢?把这个数据自动给我发过去。那也可以啊,就看你只要是主要是说建立起连接这个过程啊,建立完之后呢,谁发是吧?你就谁发 啊?但是呢你要想啊,我们,你看我们有时候的咱们,比如说这个输输输的设备,或者咱们有些这个,呃,是说 p l c 是 吧?啊?你这个东西呢相对于是增加了 p l c 里面的这个代码逻辑啊,设备里面代码逻辑 是吧?那代码呢?需要设备这边呢需要去主动提交数据给你是吧?第一个他在检查网络,第二个呢他把数据呢发给你之后呢?你你得你也得去处理是吧?那通过咱们的那不是不是通过,那你要自己解协议的是吧来进行处理的。呃,这种方式呢比较少见啊,也不是没有啊,大家可以理解一下,了解一下, 往后走呢就进发布订阅啊,发布订阅的话呢,这个方式呢?其实比如说像 m q g t 啊,这个是在互联网里面呢比较常见的情况 是吧?就是说我可能说我我我这个不管是扣单也好,商议也好,是吧?我先到某个地方去订阅一个,发个订阅,这个订阅意思就是说,呃,就是一个标记啊?我需要什么样的结果啊?一个中心的一个位置是吧? 中心位置啊?中心的一个,呃,就是类似于这么个结构啊,就是我们这是一个啊,中心位置有这么东西是吧?啊?然后所有的客户单啊,所有客户单的都会向他去注册,找他去要啊?找他要。你说我,我这个我需要什么样数据?他需要什么样数据是吧?他需要什么样数据?他需要什么样数据啊?给他告诉他啊,告诉他 一旦他拿到什么样数据的时候,他就转发给你,转发给你,转发给你,是吧?就这个东西呢?就什么?就像我们的在邮局啊,邮局是不是一个中心的一个场所是吧?邮局去什么订包纸 啊?邮局是不是是不是一个叫做中心场场所啊?那邮邮局的话,那那这个他,呃,我比如说我要定什么人民日报啊?我要定什么?这个, 呃,这个什么什么学习什么那个相关报纸,是吧?那这个当他这个邮局,然后,然后那个发行发行方或者咱们的啊计算机厂是吧?发布了这个什么相关的报纸过来之后,他是你看谁订阅了啊?那就发给你,谁订阅了就发给你,那没订阅的发给吗?那不发吧是吧?你这个就是一个订阅的过程 啊,这个东西呢,其实每一个呢都是一个终端啊,每一个都是终端啊,不管是什么基于这个中心服务器来处理的, 好吧?哎,这就是咱们的通信的一个数据格式和相关的通信模式啊,就大概的结果,大家可以理解一下啊,但后面我们可以通过代码转来更深入的去理解一下这个过程,好吧?

哈喽,大家好,这里是白话上微机。大家好,今天呢给大家介绍一下我们新手小白在看我们四十件合集的时候啊,会产生的一些这个问题,那么今天呢,我总结了四个问题啊,第一个是 new get 包下载的注意事项啊, 我们有的小伙伴呢,在打开 vs 二零二二控制台程序,又或者是 wpf inform 以及一些 dna 的 framework, 或者是 dna 相关的这个项目的时候啊,呃,在下载这个 newget 包的时候,它会产生一些报错的现象, 比如说你在运行的时候,这个程序报错了,它提示有一些依赖缺失,版本不对。又或者是你在下载一些 new get 包的时候啊,它会有提示,就报了一个黄色三角形,这个时候呢,就说明你下载这个包的版本不太对啊,那么我们来打开我们的二点二, 我们这里呢随便创建一个项目,这个是一个 wpf 的。 好了,首先呢教大家一个技巧啊,在我们下载这个 new get 包之前呢,第一步先确认一下你自己所用的这个成 c shop 的 版本啊, 或者是 direct 版本,你可以看一下你目前 direct 的 版本是四点七点二,这是第一步啊,一定要记得你目前使用的 direct framework 的 版本是四点七点二。然后呢我们再来第二步,下载这个 newkit 包, 我们这里呢以下载 prism 为例啊, 大家可以看到,在我们搜索完这个 newkit 包之后呢,你随便点击一个包,它这边都会有两个选项, 第一个是这个字数文件,这个相当于主要是介绍你这个包干嘛的,要怎么使用,我们关注的是这个点,这个第二个这个选项页叫包的详细信息。为什么要关注这个呢? 这个里面规定了你的 net 或者是 net framework 的 版本啊,也就是说有哪些版本可以使用目前的这个九点零点五三七的包啊?那所以说,当你目前选择这样一个最新的九点零点五三七的包的时候啊,一般来说 dernet framework, 四点六点二,还有这个四点七,还有 dernet 六点零这三个版本是支持的啊,也就说这三个版本你下载下来大概率是不会报错的。你如果按照它的官方文档来讲的话,那么我再举个例子, 如果这个时候你的这个 wpf 的 程序啊,它的包的版本,它的这个 dernet 版本不是四点七点二,而是一个呃,比如说四点 四点八或者是四点四点几,也就说如果不是四点六点二跟四点七的,这个时候你就要注意一下了, 因为这种情况并不是说呃你所有的假如说你,呃,这么说吧,如果说你这个时候你的 wpf 的 这个 dnet 版本是四点八的话,并不代表你一定会报错啊。下载这个九点零点五三七的版本啊,它不一定是会报错的,因为是什么呢? 四点八?其实呢,比如说像 dnet framework 四点八,它是大概率上是兼容这个四点六点二跟四点七的, 那所以说这个东西它并不是说你下载这个 new get 包的时候,它一定会成功的啊,所以说这点大家一定要注意一下, 如果你下载这个相应的 new get 包的时候,它报错了,你首先要第一步要排查一下你使用的这个 dartnet 或者是 dartnet framework 的 版本啊,是否跟这个项一致?如果你的 dartnet 版本啊,处在它这样的一个依赖项的一个列表之内啊,就说明大概率是没有问题的, 那我们只需要看它的文档就可以了,按照它的文档来,如果你的 direct framework 的 版本或者是 direct 版本并不在这个名单里边,也就不在这个依赖性的列表里边,那这个时候你就要谨慎啊,它是有有很大的可能性是会报错的, 但这个只是经验来讲,它并不是说一定会报错的。所以说我们在小伙伴啊,小伙伴们在每次下载这个 new get 包的时候,要一定一定要,这里要多看一下你的包详细信息,看看你的包到底支持什么样的 direct from work 的 版本啊, 那比如说像我们常用的有 system 点 text, 点那个 json, 或者是 i o 点 plus 这些 i o 的 类,对吧?它有的时候也会有这样一些版本的限制。 所以说有的小伙伴呢,你在下载这个 new gift 包的时候呢,不要说直接点击安装就可以了,这点呢我在之前的前几期,前几期的视频里我也都提过,就是不要非常盲目的点,直接点安装就可以了,如果点安装的话,它有的时候是会报错的,甚至这里的包它也会报一些黄色的小三角形啊, 这里呢,大家注意一下其他技巧倒是没有什么了,反正总结一下吧。当你在你的程序里面下载这个 new get 包的时候,如果你运行,也就说在你按照它的文档 呃,按照它的文档来写相应的代码,比如说配置的前提之下,如果它还报错了那个,这这个时候有百分之八十甚至九十的概率啊,都是你的这个版本不太对导致的啊。所以说你要多看它的 github 的 文档, 看一看它目前这个最新的包,九点零点点五三七啊,它支持你的 directprint 的 版本是多少啊?这个算是一个技巧吧。 然后呢,第二个呢,就是 prism 的 框架好像很复杂,我的小项目有必要用吧。 呃,对于一些刚入行的新手小白来讲的啊,这里呢,我推荐大家使用 mvmlight, 而不是使用 prism。 嗯,说点实在的。呃,刚入行的新手小白经验其实相对来说是比较欠缺一些的。 program 用起来是稍微复杂一点的啊,相对于小白来说,所以说你做一个小白,如果刚上来就在你的小项目里面使用 program 的 话呢,容易把握不住啊, 就是年轻人把握不住。然后的话呢,在什么情况下可以使用这个 program 呢?第一个呢就是,呃,当你的项目稍微大一点啊。 第一个就是如果有一些模块化的需求,比如说有些插件插件化的结构,方便扩展,那这个时候就可以用 program 了。 第二个呢,就是当你的页面啊,需要一些 region 的 区域导航管理啊,比如说你的呃,界面大致分成了上下左右四个区域,每一个区域需要写相应的页面啊,那么这个时候可以用 program。 第三个呢,就是有些多试图的导航区域啊,比如说要导航上页下页,或者是导航到其他页面,也可以用 prism 吧。第四个呢,就是些团队协助,如果你这个团队里面每个人开发一个 mark 一个模块的话,也是可以用 prism 的。 那么第五个就是未来的你的这个项目 有可能或者是已经成为了一个大型项目,所以说基于这五个情况啊,大家可以用 prisma, 剩下的话,如果是一个新手小白,新手小白刚开始做小项目的时候啊,推荐就用 mvm lite 了,当你有一定的实力和技能之后啊,再慢慢地深入,再使用 prisma, 就是不要一口吃成个胖子。这里头也给大家这方面的相关建议啊。第三个呢,就是买特柔底站还有 honda control 啊,这些空间库需要怎么整合到我的项目里面呢? 目前来说,在我们使用这个一些免费的开源的这个包的时候呢,像买特柔底站还有 honda control 这两个是使用比较多的, 那么如何把它们整到项目里面呢?就是可以看一下,大家可以在大家可以进入这个快捷 control 或者是 maker 域域的 github 的 官网啊,它们是有源代码的 demo 的, 你你把它们下载下来再翻译一下,不需要费很大力气的, 我这里以 handycontrol 为例,对吧?如果你的项目中要同意决定要使用这个 handycontrol 了,那么第一步是我建议大家去它的代码仓库啊, github 的 代码仓库,把相应的 handycontrol 这个代码下载下来,或者是克隆下来,把它翻译一下,翻译很简单的, 把它编一下,然后编一成这样的一个可执行的程序啊,你把它编完之后呢,他这个空间库里所有的这个空间怎么使用,包括他使用的相关的这个代码你都是可以看得到的,直接复制粘贴就可以了, 很简单的,这个就是一个经验啊,就是不要说只看他们的官网的网页,如果你只看网页的话,实际是看不到这样一些动画的一些效果的, 或者是一些控件的效果,那么所以说呢,关于这个第三个问题,怎么把它们整合到项目里边?那就是把他们的这个原代码的 demo 编一下,然后呢,你自己来点击看你的项目里面需要是需要哪些控件, 如果你需要这样的单选按钮,你就把它们粘过来,直接找相应的代码把它们粘过去就可以了啊,非常简单的使用的, 那么这点就是,嗯,第三个问题,我要介绍的内容啊,就是看着他们的 demo 软件,然后来自己来选择你所需要的这个效果或者是控件,把它们粘贴过去就可以了。 第四个问题呢,就是上机软件工程师在开发过程中有哪些通信协议是使用最多的呢?以及相关的这个具体的硬件大概都有什么?第一个呢就是我认为啊,使用最多的第一个就是 model bus 的 r t u 或者是 model bus 的 t c p 啊,这个是使用最多的,呃,像西门子的 s 七系列,还有幺,还有幺二零零系列,幺五零零系列啊,大部分呢都是用的 model bus t c p, 再有些像三零的 plc, 泰达的 plc, 或者说像一些汇川的呀,呃, abb 的 一些变频器, 再包括是一些触摸屏,甚至于国产的一些温控表啊,电表啊,一些压力计啊,流量计这些啊,好多都是用的这个 model bus rtu 或者是 model bus 的 tcp 啊, 这个是使用最多的。第二个呢就是呃 tcp ip socket 相关的啊, 像我们如果用 t c p 的 来,呃,如果使用 t c p 协议的话呢,使用比较多的是相机啊,工业相机, 像海康威士,大华康奈士,还有金士,或者是像些巴斯勒相关的这个视觉相机啊,它们有的是有一些网口相机的啊,那么这个时候需要有需要用一些呃 t c p 相关的协议啊。 另外呢,还有的就是像一些雷赛啊,固高,或者是一些正运动的相关的运动控制卡,有的时候呢也是会用到 tcp socket 相关的通信协议啊。 再有就是像像有一些大族啊,或者是华天华工的一些激光打标机,或者是像一些嗯,可编程的一些六轴的机器人都是用这个 tcp socket 是 比较多的啊。那么第三个使用的就是串口通信啊, rs 二三二或者是四八五的 像一些单片机啊,或者是 stm 三二以及五一的开发版啊,嗯,好多时候是用串口来进行通信的, 包括一些像拉力机啊,电子秤啊,卫仪传感器,以及一些比较古老比较旧的设备啊,这些都是用窗口的。再有一些就是像一些数据采集卡,比如说炎华的林华的一些数据采集卡也是会用到这个 rs 二三二或者是四八五窗口通信的。 再有一些就是像一些医疗的仪器啊,环境监测仪这些,所以说呢,呃,在上一些医疗的仪器啊,环境监测仪这些,所以说呢,呃,在上一些医疗的仪器啊,环境监测仪这些,所以说呢,呃,在上一些医疗的软件工程师开发过程之中的, 主要是这三个通行协议是是用的最多的,其他的还有一些使用的,比如像 o, p、 c 那 些也是用的比较多的。而这里呢,我只列出了前三种使用最多的 通信协议的选择呢,取决于你的硬件的兼容性以及实时性,还有你的具体的项目需求啊,并不是固定的,并不是说,比如说,那我举个例子,并不是说你所有的这个海康的相机都一定要网口通信的,不是的对吧,它有的还有 usb 口通信的。 那么今天呢,主要介绍了这四个相关的问题啊,这些小白容易遇得到的,如果大家有其他问题呢,也可以打在评论区啊。嗯,如果觉得本期视频对你有帮助的话呢,也可以点赞收藏加关注啊,谢谢大家!

哈哈喽,大家好,这个软件它是怎么做出来的呢?就是它首先 它这个就是安卓代码,安卓代码的话它这里,嗯,安安卓它的架构是目录,是 一个 active 体,一个它没有,一个这个它没有呢?就是一个布局文件,就是这种,比如文件,就比如一个它没有,它就是个局文件,我现在可以对它进行一个设置设置连接,你看没点到这里它就 啊等一下哈,点到这里它就可以什么了?等下调一下,好像没对上,点这连接之后它就可以走到这里,就是这一个就是一个空间,就是一个标签,它和这个, 嗯,就是标签源嘛,然后这就是设置它的什么长宽高啥的,然后然后呢就是布局呀,空间弄好了之后就开始布局,这个就是一个限行布局,然后,嗯,然后呢?它这个 它程序是从 magt, magt 开始, activity 就是 一个界面,就是一个活动窗口的意思,然后它这里 第一行就是把那个布局的那个查没有,就是这个查没有,就是那个什么查没有,就是这个查没有,就这个查没有。给它设置到这个这个这个里面啊?设置布局文件,这个这个函数内部就不用管,反正就是说 它可以找到那些文件,就是这里就是这个语法,就是按照英文去理解,就是一个资源布局,然后是找到 activity man 点查没有,对吧? 啊?然后就是调函数,设置它的这个标题栏,标题栏就是这个熟读唐诗三百首。然后呢? 下面就是说这个函数很重要,就是泛旧有 bug, id, 就是 通过这个资源去找这个 id 的 bug, 就是 control 了,就是这个什么呢啊?找找 my activity 的, 查没有好, 就是查这个,查这个,查没有就查没有,你点这里就是什么呢?就是这个就可以,就可以找到这个 id, 等于这个嘛,就是离线控制,比如说你这里就点到这里,它就可以走离线控制。然后最主要的代码是什么呢?就是这个离线控制这个代码,这个代码是设置一个事件监听器,和这个 au 就 差不多,是不是啊? 就是事件处理 into, 就是 一个 into, 这个英文单词代表的是一个什么呢? 意图啊?就是它可以从这个界面,然后跳到这个 offline activity, 就是 这个 java 文件这边就可以走这边,然后它也会走到它的这个创建函数,创建函数这里就是设置它的什么呢?就设置它的, 嗯,就设置它的,试图被触试化,试图触发,试图,就下面这个 api, 就 设置什么,根据呃设置它的点击事件,开灯、关灯,对不对? 然后上面呢?就是这,但是这里用了一个县城池的概念,就是用县城池来做的,下面是一个接受单县城,然后这边是一个事件主循环。为什么要这样做了?因为主以外,这外县城它只能来,它负责刷新界面, 此县城来负责处理处理数据,后面的话就比较好理解。然后最重要的就是这面页面怎么切回去呢?就是要用这个这个接口啊,这个相当于是一个 这种 override, 就是 一个把它看成是 c 语言的回调函数,这样子它就可以回调这个,然后这里关了之后就是 finish, 然后我这里加个打印,比如说你关了之后它就会回退,这里就是 logcat, 然后这里的话你看这里就是个打印,你点了这个之后它就会打印。 嗯,就比如说我先,那你先控制点了,你点的开,你先控制,然后点这个点一下,这么点一下之后它下面就多了一行,就是它可以切回到主页面, 他可以切回到主页面,主页面就是麦格 t v t 这个主界面,然后他看就这个样子吧,他你看没,他切回来就切到主页面,其他的主要就是其他的好像也没啥,嗯。

哈喽,大家好,这里是白话上微机,今天呢带大家认识一下 c 上微机开发过程中最流行的两个 modbus 的 开源库啊,是免费的, 第一个呢是 n modbus, 第二个是 easy modbus, tcp 啊,我们先来看第一个 n modbus, 它就相当于是工业界的老黄牛啊, 它的江湖地位呢,可以说是 modbus 界的德莱特官方指定合作伙伴啊,虽然不是真的官方, 它的使用率的话,我认为在呃,如果在整个国内公控级啊,如果大家要使用这个免费的这个开源的 modbus 库的话,那么 n modbus 应该是排第一的,用一句话来评价它就是稳如老狗,功能全面,文档齐全啊。 那么我们接下来呢,也不废话,直接带大家打开我们的 vs 二零二,用代码来模拟和 modbus 的 虚拟的一个通信啊, 我们今天要使用的软件有 vs 二零二,还有这个 modbus slave 这样的一个呃,模拟这个 modbus 通信的一个虚拟软件啊,大家可以自己在谷歌上下载一下。好了,我们先来创建一个 directnet framework 的 一个程序啊, 这里呢命名为 test modbus 对 吧,然后点击创建。 所以呢,我们先来看第一个使用这个 emote bus, 我 们要先下载一个 newget 包, 直接搜索 emote bus, 直接点击安装 好了,它已经安装成功了,这个代码呢,很少是我这边自己提前写好的,我们先直接把代码粘过来 好了,我们先重新生成一下,它没有报错,可以看到我们代码里边设置的一个连接字母串啊,就是 ip 为幺二七点零点零点一 端口为五零二,这点要与我们接下来使用的这个 modbus slave 的 软件这个 ip 端口相对应啊,所以说第一步我们在代码中已经把,也就说第一步我们下载了这个 newget 包,然后把代码也粘过来了。第二步呢,就是打开我们的这个 modbus slave 的 这样一个软件啊, 这个软件呢,先大致给伙伴们介绍一下,有的小伙伴可能刚进入这个行业,不太清楚这个软件,这个 modbus stream 的 你可以在谷歌上下载啊,它是收费的,但是,但是呢,如果你新手用的话,它是在三十天之内是免费的,那么三十天之后你就要花这个 lcs 买了, 这里呢也鼓励大家支持正版啊,虽然说网上有一些其其他的途径。 然后呢这个软件呢,就是我们可以在这个 modbus 里边建立一些虚拟的这个 modbus 的 一些通,一些那个 ip 通道啊, 来让就是方便我们的这个代码软件来调试,因为你有的时候只局限代码的话,比如说你在家里边,你是无法与这个真正的 mod 呃,带有 modbus 这个通信的硬件来进行连接的,所以说这个就是一个虚拟的软件,就类似你使用的虚拟窗口。好了, 那么我们接下来先 connection, 先点击 connect, 这里不用管,因为我也是为了方便演示刚下载的,所以说我们第一步就是选择这个 tcp ip 啊,然后呢 ip 端口 这里是不是正好对应了幺二七点零点零点一五零二,是不是跟我们这里的一样,保持默认就可以了,好了,点击 ok。 然后呢第二步就是设置里面的这个站的参数,我们这里选择从站,他是一啊,我们因为要今天要测试的是读取输入的,所以我们这里选择二读取输入的线圈啊,好了,这里是零到十,也就说要生成十个这样的地址数据,点击, ok, 好了,如果你点击 connection, 这里出现了 disconnect, 就 说明你已经连接成功了。那么接下来呢,我们直接通过代码来断点调试,看它有没有真正的连接到这个 modbus 开的一个虚拟的这样一个通道啊。 好了,这里已经是触制化完了,那可以看到我们这里是不是 connected 为触,是不是就说明我们已经连接成功了,对吧?好了,我们接下来直接把断点往后放到这里, 通过控制台呢?我们通过这里呢?我们是不是可以看到我们已经读到了十个地址,但它们全为 false, 也就是说对应的这里全为零。好了,那么接下来呢,为了方便演示,我把这里地址改一下, 改成一,那么改成一他是不是在代码中读到正常来说就会变成处了,对吧?我们把第一个,第三个,最后一个都改成处,然后呢,大家来看一下,等会我们在代码中读到的第一个,第三个最后一个数据是不是为处,对吧? 我们再来启动一下好了,可以看到第一个,第三个,最后一个是不是为处了,是不是就说明我们已经把通信连接上了,已经已经读取到这个账号为一, 然后其实地址为零,读到了连续十个的数据了,对不对?正好和这里是不是对应上了,看到了吧,第一个 为处,第三个为处,最后一个为处,好了,这个就是我们使用这个 nmodbus 的 一个小例子,如果你要读去其他的旋圈的话呢,只需要在这里把方法名改一下就可以了,今天呢主要是带大家快速入门这个 nmodbus。 好 了,那么接下来呢,我们再来看第二个库啊,叫做 easy modbus tcp, 我 们首先下载这个 newget 包, easy modbus tcp 点击安装 好了,它已经安装完成了,我们先把这个代码全删掉,然后呢直接把我写好的这样一个代码直接给粘过来 好了,我们直接来生成一下好了,是不是可以看到 我们使用这个 easy modbus tcp 是 不是也读到了这个我们刚才这个生成的一个虚拟的通道里边的值对不对?第一个,第三个,最后一个是不是都为处,对吧?一一 一对不对?第一个,第三个,最后一个,那所以说我们使用这个,不管是使用 nmodbus 还是使用这个呃, easy modbus tcp, 其实它们的原理都是一样的,只要你掌握了这个使用方法,你不管跟什么硬件来进行通信,读到的数据都应该是保持一致的啊, 对吧?它们毕竟只是工具, 那么我那么我接下来呢,来给大家讲一下这个啊, easy modbus tcp, 这里边有一些代码的一些呃,知识吧,我们先来看第一个啊, 先来看这里,这一行代码呢,它就是创建 modbus client 的 一个地址啊,这里呢直接填 ip 和端口就是对应的你这个 setup 啊,对应的 connection 里边的一个参数啊, 就是对应的这里的一个参数,幺二七点零点一五零二,代码中也要保持一致, 那么下面呢,这个就是从站号默认是一,这个是连接超时,是五秒,也就说你五秒连接不上,对吧,它就认为是异常, 然后呢再往下是一个 connect, 对 吧?连接从站这里呢,就是功能码零二,对吧? 我们这里呢,零和十分别代表从第一个地址开始读,它对应的所以是零,连续读取十个,意味着我们这个数组里读到的话,它会存在十个数据,这是把它打印出来。 然后呢,在我们大家记得保持一个习惯啊,在我们使用完这个硬件通信之后,如果你不用的话,比如说调用这个 disconnect, 或者说 dispose 或者说 close 一 些方法,把它占用的资源释放掉啊, 那么这个呢,今天的主题呢,就是已经讲完了,其实就是简带大家快速入门,这个 nmodbus 还有 easy modbus tcp 啊,这里呢,我再来做一下总结啊, 关于这个 nmodbus 呢,它是工业项目的首选啊,稳定可靠学习,学习成本是稍微高一点的,因为它比较旧了,然后使用的年限也是比较多了。 第二个呢就是 easy modbus tcp 啊,它适合一些,做一些快速开发,简单易用,然后的话功能也是够用的,就是总的来说就是这两个库你用哪个都行,根据你项目以及个人的这个需求来自己选择啊,灵活选择,用哪个都是可以的。 然后的话呢,这里呢再来提醒一下各位小伙伴啊,尤其是一些新入行的小伙伴,不管是使用哪个库,一定要理解 modbus 协议本身啊,否则你遇到问题了,连调试方向都没有。 那么到这里呢,其实好多小伙伴也会问,对吧?我们在整个上机软件开发过程之中呢,也会经常用到一些库, 为什么我们自己不手写呢?这个问题我觉得从技术实力方面来讲,目前来说,你身为一个小白以及一些刚入行的伙伴们,甚至朋友们, 以你目前的技术水平实力,是无无法写出来一个,对吧,比较稳定可靠,让很多人都认可的一个库呢。所以说在你目前这个能力不足的时候, 多使用别人一些优秀的开源的库,来借鉴他们里边的优秀的代码,等你以后有能力了,再来自己写一些库,因为你自己写库的话,不管是 log 还是 model bus 窗口的,他应该是会报错的, 而且也不,而且也不太稳定,也没有大量的这个代码或者是环境来测试,所以说呢,我这里呢鼓励一些新手啊,多使用一些相关的库,来这个快速增长你的这个开发技能啊,等你以后有能力了,再自己再来写一些库啊。 那么今天的视频呢,就到这里了,如果大家觉得对你有帮助的话呢,可以点赞收藏加关注,当然你有什么问题的话呢,也可以打在评论区,那么我们今天的视频就到这里了,谢谢大家。

今天给大家说一下上位机软件和设备的连接操作方法与使用。首先先用数据线将电脑和设备连接, 然后在控制器上面选择二三二的端口,先点显示设定,然后点这个 ip, 选择二三二,然后在电脑上面双击打开上位机软件登录,之后点设备列表,然后点新增, 输入设备名称,选择串口号报警,点列表全选,然后点保存,再点曲线模板列表新增, 选择温度上下线, 输入模板名称,然后点保存, 再返回设备列表,点更新,选择曲线模板,选择刚才创建的曲线模板,然后点保存,点启动, 然后回来设备看吧。通讯成功数显示一就是已经通讯上了,然后点设备监控。 上位机软件上面的温度跟显示器这边一样,就是连接上了 上位机软件,上面跟设备上面的功能是一样的,也可以实时城市编辑, 也可以预约开机查看历史曲线,历史曲线记录的那一刻,它是从上位机软件连接到设备那一刻开始记录,并不是完全同步设备 曲线,这里也可以导出,直接导出到 u 盘也可以,电脑也可以。以上就是我们上位机软件的基本操作说明。