粉丝1611获赞4837

哎,朋友们大家好,这一节呢给大家说一下这个博主软件的一个就是我们进入编程之后的一个基本的一个操作啊,那么这个如果说进入这个编程界面之后啊,那么在写程序之前,就是我们在编写这个程序段之前要先做一些 事情,第一件事情呢就是要先做这一个票色的变量表啊,票色的变量表,票色的变量表呢?在这边的这个项目当中 点开这个 ps 的变量啊,可以点击显示所有变量,也可以添加下面的这个新变量,比如现在我们可以看到上面呢,我现在已经写了有几个变量 啊,这几个变量当中呢,我把它给重新秘密一下啊,这个名称啊,可以在这里边直接新进也可以啊。然后这边比如安利零零,我们以一个简单的例子为例啊,就是比如说像齐廷 的一个程序的设计啊,比如说我们第一个启动按钮, 第二个让我们一起上停战牛 呃,口里面呢写上电动机的电动机啊,我们就表示一下电动机啊,为什么要去?首先就说我们在编程之前就先去做这个呃,平时的变量啊,但也可以是通过这里边的这个导入和导导入的方式去,嗯,添加进来啊, 为什么要先加这个呢?主要是因为我们在编程的时候,比如我们回到这个编程界面啊,编程界面我们如果说写上这个启动跟停止的这个程序的手啊,把那个 想让这个程序的做,如果说我没有写变量的话,比如说我们写上刚才那个里边写了 二零点一跟扣零点零算,我们写上二零点三,零点三的这个点的话,我们就没有写过,对吧?没有定义过他 啊,没有经历过他。如果说我写上这个程序之后,可以看到这里边虽然写上了爱丽莲山,但是我并不知道这个爱丽莲山所对应的这个 描述是什么,就是他要描述一个什么样的一个信息点,那么我们这里面是看不见的啊。说这样的话,就是在我们后面读程序的时候,我们并不知道这个点所表达的意思是什么。说我们在这里面呢,就要用这个刚才讲的这个 ps 的变量表去做啊,让我们现在写上安定点零, 它是启动按钮,是不是啊?可以看到我当如果说我是在这个电量表里边已经把它给定义了名称之后,那么在程序编写的时候呢,就可以直接用了这个点,那么它就会显示出这个中文的这个描述这个名称, 这样一来的话,我在组成的时候,我知道这个是代表的是一个外围的启动按钮啊,比如说停盏钮,也可以通过下拉的形式去选择停止按钮,然后呢输出是电动机的,然后呢完成制作 电动机,可以看到这样写完之后呢,这个程序的这个考读性就会变得很高,至少呢我能够很清楚的知道哪个地方是启动停止,然后他说对你的外围的输入输入是怎样的啊?这是第一个在编写成绩之前要做的第一件事情, 第二件事情呢就是程序段的这上面的最后写上相应的这个,呃,这个程序段所要描述的这个内容,比如说这一段呢,是一个一号 啊,觉得是一号电动机的启停啊,如果说我住上这个柱式之后的话呢,我们 知道这个纯一段一的这个表述呢,是一个一号电动机的启停啊,是这样的。另外一个呢?有的,呃,有的这个朋友呢,他说这个播出软件呢,他也支持的,一个是在同一个程序当中写入多条的一个程序,比如说我这里边用康瑞加 c 加康瑞加 v, 如果说我粘贴在复制之后啊,我用粘贴在复制之后,哎,他这个程序编译的时候呢,我们如果说改成不同的点之后啊,这种情绪写法了,他也是 也是支持的,也是可以的。但是如果说你这样写的话,会存在一个问题是什么呢?就是说我这个程序段,如果说上面如果我把所有的程序都写在这一个程序段当中的话,那么你如果说在现场来讲啊,你去出现错误之后,你后去对他进行啊,检查程序的时候,就是维维护的时候 啊,维护的时候,那么这个时候呢,对于这个程序呢,就很难去翻,也就是如果说我有一百条程序了,就要就会有很长,那么就必须从第一段啊,依次往下读啊,把这个所有的程序都读完之后呢,你才能找到这个到底是哪个地方出问题了啊?说这样的话,这个可读性就会变得很差, 所以我们在往往在做的时候呢,都会把它写成每一个功能呢,写成不同的程序段,因为往往在很多时候呢,如果程序段很多的情况之下呢,会用了这个折叠的形式,就是关闭所有的程序段的这个方法,这样一来了就能够看见现在所有的程序段, 点击上面这个位置就可以看到啊。然后呢这样有的话,如果说我这个现场出现了问题之后,比如说是一号电动电动机的启动出问题了,那么我只需要看直接断一就可以,如果是二号电动机出问题了,就要是吧,然后三号电动就出问题了,我们只需要分别选择不同的阶段, 那么这个时候的话,这个查找问题和读程序的这个效率就会变得更高一些。说这是在我们编程之前哈,就是要先做的这两件事情。


大家好,欢迎继续学习这款鞋 vsto 火箭速成班,那么这一期我们来讲 list 这个列表集合的一个速的方法啊,排序啊, 其实前面已经讲过这个瑞数组的排序方法,以后再学他的话,应该是比较简单的啊,本质上差不多啊,是 他们其实是来源都是一样的啊,都是结合类下面的一个说的方法。好,我们来看一下,这里有一组数据啊,我们排序里一般就是整形数据啊,当然支付串呢什么那些都可以啊, 先说直接排序啊。嗯,那么这里是一个,因为数组我们说过我们要得到一个 list, 我们复习一下啊, list 怎么样?我们用 list list a 等于 a 二点二二, 然后 to list 好用,它在如果是 c 下不是必须要打括号啊,在隔壁点 at 比较简单,不用打括号,这样就得到了是一个 list, 那么这个 list 可以直接调用它的排序方法啊。 dear sort, 好, 你看这个点 set 就不用接受参数。之前我们数组排序是怎么来的?是 a r r 点用 a re 点索特,他调用起来就比较麻烦一点,是吧?他要这样调用,那么到了我们的集合这个列表里面,历史里面他是直接列表对象,这个对象直接一个方法点索的方法。注意看啊,咱们的微软里面 这个帮助里面就写的有清楚啊,他一共有三个啊,这个按范围排序啊,还这个是对你们直接默认的 这个比较器进行排水。还有就是对指定的比较器啊,一个是指定的,这个是指定的比较方法,我们一般用的这个比较方法和指定的比较器,这个指定的比较器接口的这个啊,他是要传一个类啊,这个在前面讲过,这节我们不会讲这个方法,我们讲另外两个方法啊。好, 那么这个直接排序是比较简单的,那我们还有一种是按比较函数啊,嗯,比较函数,之前在耳瑞里面讲过月份的那个,那么这里呢,我们来看一个自定义类的这个方法啊,这是其他的啊,我们自定义的一个类,这个类呢有产品和数量 两个属性,我们希望多个这个类呢,我们在这里呢,我们会促使化一下啊,随机一下。你看我们产品的总是这三个名字,然后他的数字呢? 数量啊,看这个数量,我们会得到一个一到九的随机数,我们按那么就得到十个数的话,我们在这里调这个函数,得到一个十个产品的这么一个集合和这么一个列表啊,这个列表里面呢,我们要对他进行排序,我们看一下。 那直接对他进行排序行不行?我们看一下啊,那么这里我们的全局的产品历史的点 short 好,想的挺美,是吧?直接这样排,我们看一下他行不行。 直接调试测试,不出意外的话啊,那应该会出意外。哎,他就说了未能比较数组中的两个元素,注意看啊,那这个题 是什么意思呢?这个题是就说当我们直接用瘦的方法,就是说必须是这一个一个数组或者是一个集合里面,他内部有默认的比较器,那么这个单个值的,比如说单个的数字啊,支付串的这个他们就是有默认的比较器可以进行比较的, 但是这个自定义的类他是没有的,我们要对他进行排序,我们这里就要第一种,就是使用我们之前说的叫做 fiction, 那就是 for e 七 x 因成品历史的,那么这个里面我们对它用它的数量进行排序,数量 第二肯拍而出,注意啊,不光是一个 x, 这里有两个参数,这个三颗星是代表了两个参数,为什么是两个参数?他比较吗?比较就是 a 跟 b 进行比较,也就是这一个数跟下一个数进行比较,这才叫比较。这个我们在 之前的数组里面讲过的啊, can pair y 点数量,同学没有学过第八章的同学就很很有点奇怪这个为什么这个地方 x 我也没有饿着它怎么就可以知道它里面有数量这个属性呢?那么这个就是不一点那的也就是微软这个 编辑器的强大之处,这叫做类型推断啊,因为它的这个函数知道你这个产品历史是定义的是一个 list of c 产品这么一个列表,它里面的每一个元素都是 c 产品这个类,所以它的这个 什么呀,拉木的函数排序函数里面两个它实际上是 as t t, 什么叫 t? t 就是范型,这个范型它是怎么推断出它的具体类型的?就是根据这个前面的 off, 这个 t 跟后面这个 t 是一起的,你你前面定义的 类型在后面,他就知道你不需要在这里呢再单独写一个二字什么什么的啊,所以在这里也会有输入提示,因为他知道这个 x 就是产品类,就是那个啊,就是那个,这对就是 c 产品类,那 y 也是 他们两个数量进行比较,那么他们排完序以后,我们快速的输出一下,他们啊,我们用一个第八个语句点 print, 对啊,我们这只用十个元素,所以输出的话比较简单。还大家注意一下,我这个产品内里面呢,覆盖了一个 two string overrise 啊, overrise, 覆盖了这个系统自带的图使准方法,这样就我们在用旧印函数的时候,他可以输出这个,那方便我们来查看结果啊。 print, 我们现在他排完序序以后点儿 好,我们要对这个进行连接,就要用 string 点 turn, 为了让他能够分行输出,我们就用 v b line 换行,然后对产品。 你是你注意看啊,这个就应啊,不能直接写就应啊,直接写就应他无法识别啊。那为了对比的话,我们应该输出两次,前面是什么?排序前好,排序前,后面是排序后。 注意看啊,那么这个地方呢,实际上应该还在这里输出一个 new nine 啊,不然的话 对,他会把第一行的数据呢给他连起来,你看着就不舒服。好,我们来看这个结果啊,我们把断点打在这啊,右键,注意,这是个测试项目啊,前一章前几节说了,这个测试项目怎么来的啊?调试测试, 这样我们观察这个立窗口,你看,那我们这里后面是产品名,前面是的数量,你看八六三六三八四八,这是一个随机的哇,不确定的,那我们现在排序后看看,好 看诶,是不是三四六八,排序后是不是,那么这个就是排序后了,对了吧,那么这个就是 short 方法进行排序啊,这是使用一个内连函数啊, number 表达式排序方 啊,那相对于前面我们经常说的 for e t x 代表这个,这个里面就理解稍微较绕点,你要知道这个方形的定义啊,方形的定义啊,它实际上就是 comparison, comparison 题可以点一下它 comparison 委托, 这叫比较器函数委托啊,你看它这个里面就有两个函数,一个 x, 一个 y, 都是,前面都是二字 t, 都是 t, 这个 t 呢代表的就是具体进行比较的类型。 这边好,你看这里其实也有案例,可以自己去研究一下啊,他的本质是返回零一负一三个字啊,是吧?零代表相等啊,负一就是小于一就是大于他是这么个意思啊,你也可以自己来构造来直接返回零一负一这三个值, 呃,来代表这个函数的返回值,但是一般情况下我们都是调用到某一个,具体的那个用一个 compare two 啊,这个比较简单一点,反而你自己还要去构造这三个值的话,就更复杂啊,可能动不动就搞错了,你也记不住那么多。 但是在针对比较复杂的排序的时候,我们后面会有更多的啊。方法,这个说的方法呢,是他自带的方法,后面还有另一个方法的 order by, order by 方法呢,就比他的可能更要方便一些,他可以连着排几次啊。好,那么这里呢 就是介绍这个说的方法。好,我们来看,那据说这个产品的我们这个排序可能要经常用的话, 经常用的话怎么办?经常用的话他就有一个自定义的比较接口,我们希望呢直接点 s sock 了,就能够直接 得到他的这个排泄后的结果。好,这个是我其他代码写的一个放在这啊,好,我们再写一个方法, stop 实线 排序接口后的接口,你看啊,那这个产品呢?我们可能给要有一个默认的排序方法,我们可能有, 呃,开发组里面有好几个人,每一个人都可能调用,其他组也会调用这个类,他们调用的时候他也不知道里面具体的时间细节,我们希望呢传给别人,别人只要调用的,直接调用这个数的排序的时候,我们直接就能排,那么这个时候就有一个重要的概念就是接口,这也就是我们在前面第八章里面 讲到接口的时候,有的同学可能不太理解接口是干什么用的,这个时候就要理解一下,这个接口就在这个地方有用。接口就是让一个类能够实现一个他之前不具备的功能,那比如说这个类,我们希望他能够在排序的时候按默认排序,这个时候具有一个接口,那么就是 implements can pile 啊,我们在这里,哎, can i 啊,我也不记得那个词了啊啊,看,在这里 i, 你看这个 i 是什么意思呢? implement, 那么我们的接口在定义的时候呢,多半都会以 i 开头来表示它是一个接口,这是一种约定,俗称啊, i comparable, 注意看啊, 那你看你这样子的,他就系统有一个红线,告诉你这里要实现,那我们这里显示可能修补的程序,那直接实现接口 啊, i compare, 它实际上就是加一个方法。那再想一想,第八章里面我们自己定义接口啊,其实更多时候呢,我们去实现系统接口,当时也说过啊,可能当时理解不了,这个时候就开始要实战了啊, 在 dead 或者是拍摄那些高级编程语言里面,很多时候我们是去别人会写好一个框架,然后我们在里面去实现自己的接口,是这样子啊,然后让自己的力啊,自己的对象啊,具备这个框架所提供的一些能力啊,是这样来的, 那么这个里面呢,实际上它的写法跟这儿是一样的,你看啊, compare two, 那这个 compare two 是谁跟谁比较啊? compare two。 好,我们来看一下这个 sort i compare 啊,好 啊,你现在数错了啊,不是用 compat 啊,我那个地方写错了啊,是实现 i compare 这个方法啊, i compare 这个方法,那 我刚才这里打错字了,是不是 compare 不是它这个错了,因为这个出来的这个样子就不一样,你看这个地方, 这个除了说要右键去要鼠标,等他出来提醒的话,我们还可以直接在这里回车啊,回车的话他也会把这一个接口的方法给你写好,你看这个 ctrl 方法出来,就跟我们之前写的是一样的啊, x y, 那么这 在这里就写一个 return, 实际上这个方法呢,就是相当于我们这个方法,这个翻个行,你看这里是称之为一个命名函数,他放到这个接口里面呢,实现这个接口的话,他实上就变成了一个什么啊?命名函数就是 ctrl 这个方法。好。 x, 那这个地方你你点的话他就没有,哎,你看你这个地方点为什么没有提示啊?没有提示 compare of, 呃,定义为显示可能的。哎,这个地方不能直接好,你看 把这个 off off 什么放进去,那么在这个地方是一个默认的 off 接口,接口如果是我们自己的,那里面肯定是跟自己这个类紧密相连的,所以我们定义的时候就把这个地方 括号后面的 off 给它补上,那补上以后呢,这个里面在写的时候就有这个命名接口,所以这个方法呢,它肯定实现起来稍微要复杂一点,但是它用起来后面就方便一些啊。好,数量点, compare to y 点数量。好,那我们刚才也是用了数量,现在呢,我们可能就 准备换一个啊,慢产品名称来排序,我们希望他默认的是按产品名称排序好了,实现排序接口。这里实现了以后 了,我们就可以啊,这个排序前呢,永远都是那样啊,我们现在一二一二一二。好,我们把它去掉,我们直接按照把后面这一段来,那么这个排序就不用参数了,注意看啊,甚至说这个括号也不选 啊,括号开始要的啊,因为他是一个方法啊,那这个排序他会怎么样运行啊?你看之前直接写的话,他是报错的,现在写他就不会报错了啊。 那么现在写他怎么运行呢?你在运行过程中哦, 未能比较输入还是没有 i comparable, i comparable, 哇,还是不对还是不对?你看,那这里地方,你看我们的实现这一个比较方法是不行的,我们再来看这里啊, implement, 嗯,按道理是这样啊, of string comparable 看一下啊啊,这个,这个是不行的,这个为什么不行啊? compare 方法,这个是实现的 compare 方法,而我们如果要按这个 sot 直接方法排序的 sot 方法,我们再来看一下啊, sot 啊,这个是 i compare t 指定的比较器,还不是这个指定的比较器。这个方法呢,实际上对应的是什么呢?对应的是我们之前讲的另外一个 啊, class, 看这里就开始有点晕了,是吧?产品比较轻,那么这个方法呢,实际上对应的是我们之前在讲数组排序的时候讲过的一个东西,它是这样的 好,他不是在自己这个产品上面直接实现,而是另外一个类,另外一个类实现的,那么这个方法的话他怎么用呢?他是这样子实现排序接口是 new c, 看一下它这么来的啊,我们来看一下啊,在这里如果没有学过接口啊这些的话,这个地方就很难理解了啊,这个跟我们传统的面向过程的什么 写法就完全不一样啊, 你看 他这个时候会运行进来,你看相当于就说之前把我们三个心里面这个函数呢搬到一个类里面去来单独管理啊,这之前在讲那个的时候也说过啊,那说了这个地方我们最终目的是要让这个产品能够直接排序,默认的比较清, implements i comparable, 还是要用它 c 产品好,它出来的就是这个啊, other, 它是产品好,我们来重新理解一下这个写法啊,首先你是这个产品,我们一般来说这种写法肯定不会用 object, object 的 它的效率太低啊,还有就没有输入提示,那也就是说我们当前这个对象要跟下一个对象,这个 r 代表是下一个对象,那么之前是 x 和 y 比较,现在比较是什么?现在实际上就是 me 好,第二产品,第二 compare 度 other, 这就是下一个。那么在 level 比较的时候,它是这么来的啊, x, y 现在变成 x 就是自己就是 me, 我自己就是当前这个对象。好,那么这里有一个 return, 那么 other 就是要比较的下一个,那么这个时候他会进入到这个比较清 里面来。注意看啊,这是直接掉颜色的啊, 排序接口的自定义内默认排序啊,点 sort, 那么这个时候直接点 sort, 我们看下这个直接点 sort 怎么进去的啊? 你看进来了哦,他这个是进的是哪?进的是我们产品类自己的,那么这个写法的好处就是说他这个排序方法,排序的规则呢?跟我们这个类呢,本身是非常高度结合的 好吗?哎,他就在里面在默认的就是按照产品来拍,他其实在内部的跟我们写循环是一样的,他也是要每个元素,每个 也是比较的,他比较的时候决定谁在前面呢?这个时候就决定了,就是这个时候我们是按照产品的这个顺序来的。好,我们把这个结算个清空, 把这个断点去除,看到没?你看现在就是这样子,一一一二二二,是不是?好,那有个同学说了,那我想要高级一点在这个里面呢? 嗯,先按这个产品排序,再按这个数量排序,那你默认的是按产品排序,那你排完以后再按数量排一次呗,我们可以来两次,那我们再来一次,第二次排的时候, 是吧?我们就用这个之前写这个方法看出来,想一想,谁放 前面,谁放后面,应该是数量排序,先放前面。好,注意先按数量后按完成排序啊。 这个 note 里面的话,我们自己就不用去关心这个排序算法具体的事情了,我们一般就是直接调用啊,你知道怎么调用,怎么构造这个规则就行了啊。嗯,他系统写的一般就是最好的实现方法了,你没有必要再自己去折腾。 ok, 我们看一下 先按数量牌,那就是说每一个产品内部的也是按一个顺序来的,你看没,你看产品一的是不是产品一的三四四八八,产品二的啊,三六六八, 哎,这个就是相当一个多列排序是吧?好,他是非常的灵活啊。好, ok, 那么这个就是关于排序的几种方法,中间我们 走错了一步路是吧?对,大家知道为什么是走错的啊?关键是要理解一下,是这个,这两个接口的不一样,一个是 i compare, 一个是 i compareable 啊,那我们在这个地方 是用英普里面的 i comparable 啊,实现置顶类的啊,默认排序规则 下面的作业自己写一个学生类,仿照我上面的随机生成啊,学生 id, 语文数学,一共这三个数, 随机生成二十条历史的对象啊,历史的里面有二十个这个学生对象啊,总分排序,大家思考一下啊,因为我们这个他本身里面的只有这个 啊,语文数学和 id 这三个,那总分怎么来?自己想一下啊,分别用比较函数和排序,结果实际上应该是把这三种方法都实现一下啊。一种是, 呃,那么大形式的这个比较函数,再一种就是排单独的排序接口,再一种最后一个就是我们学生内里面内部实现排接口,希望大家实现这个也是对接口的一个深入理解的一个好机会啊。 哎,可能花的时间多一点。那没关系啊,如果想要继续学,最好是把这个搞清楚,不然后面很多东西可能可能都在这个基础上你就搞不懂了啊。好,那么这一节就讲到这里,谢谢大家,我们下一节再见。

大家好,当使用博图里面的临时变量时,不能够与 nama smart 的临时变量进行混缴。博图的这个临时变量需要去先复值再使用。我们看一下它的效果。 接通 m 零点零十, m w 一千等于一二三,那断开 m 零点零十, m w 一千就被清零。 这边这个 a a 它是临时变量,局部临时变量,这一点跟你买 smart 是不一样的,大家需要注意一下。


在 ti 博图软件中有项目库和全局库两种。项目库隶属于该项目,只能在该项内使用。项目库总是随当前项目一起打开、保存和关闭。全局库独立于项目,可在多个项目中使用。 全局库中已经包含系统提供的一些元素,例如不同类型的按钮和开关。用于 hmi 的开发,用于 plc、 六十四位数据进行计算的函数等。 除此之外,用户可以创建新的全局库,例如创建公司库并保存在桌面。 每种库中均含两种元素, 一种是类型支持二次开发,一种是主模板用于对象的复制。例如将一个分布式 io 站、一个函数 以及一个参数化的模块复制到主模板中保存。 这里可以看到模块带有变量明 保存于硬盘的全局库可以发送给其他程序开发人员使用。使用全局库可以选择性的传送所需的对象,简单方便。使用时只需在全局库中打开即可。 使用全局库时,只需要将元素拖拽到相应的位置即可。 例如,从全局库中复制一个分布式 io 站并连接到控制器上。 同样也可以 从全局库中选择一个配置的模块并插入到机架上。 通过试图放大功能可以看到在模块的前面版并没有变量名,将变量表复制到项目后,变量名与地址自动匹配。 通过对酷功能的灵活使用,极大的缩短了工程时间。快速工程在于点点滴滴、 函数函数快。用户数据、类型、面板、图形都可以作为类型进行版本控 控制。通过版本控制可以对类型统一开发,然后将最新版本更新并集成到各个项目中。通过这种方法,可以将纠错功能和新增功能轻松集成到现有项目中。下面以一个函数块为例,演示类型功能。 使用鼠标将函数块电机控制 fb 一拖放到项目库中的类型中。在弹出的对话框中可以定义版本号和注释。点击确定后生成一个带有版本号的函数块。 这个函数块也可以在其他的 plc 中调用,例如在 plc 二中的 ob 一中调用。 如果函数快,需要更新和改动,可以点击编辑类型命令进行编辑。这里选择对 plce 的 fb 一进行编辑。 编辑的函数块带有正在测试标记 视力中。在快接口中添加一个输入输出行餐,并在程序中饮用。 编辑完成后保存并编译。点击 标有正在测试的函数块,使用鼠标右键可以选择是否放弃修改或者发行。修改后的版本。视力中选择发行版本。 在弹出的对话框中,可以再次选择需要发行的版本号,勾选更新项目中的实力,点击确定按钮。这样所有的 plc 中的电机控制函数块将更新到最新的版本。 为了确保函数接口区的更新,项目中的程序需要进行再次编译。 打开 ob 一,可以看到函数块已经更新。同样更新的函数块 还可以存放在全局库中,供其他编程人员使用。使用鼠标右键选择更新指令,并指定相应的全局库。 这样项目库类型中的函数就可以复制到全局库的类型中,并带有相应的版本号。 如果有最新版本的函数,也可以通过全局库进行更新,例如打开全局库电机控制库, 可以看到最新的版本为八点零点零选择更新项目, 这样全局库中的类型替代项目库中的类型,同时项目中的函数块电机控制全部更新为最新版本。

初学者一定要掌握的博图软件当中的几个表,第一个表呢是我们所说的一个变量表,变量表是什么意思呢?我们可以打开, 大家可以看到这边呢有一个地址,这边呢有一个名称,也就是我可以对我这个地址呢重新给他建议定定义命名。 哎,就是假如说是 q 零点零,那我编程序的时候,我想要知道他是一个风机啊还是水泵啊?这是啊变量表。第二个表呢叫做强制表。所谓的强制表是什么东西?就是我们要对一些外部的输入输出,那么我们需要对这个地址呢进行强制,比如说我现在要对一个二零点零, 现在你是没有办法进行修改它的值的,或者说你的一个 q 零点零它的一个状态,那么你必然要进行一个什么呢?强制,你把它修改为一,然后你把它勾选上,然后点击,强制点击是,那这个时候呢, 你的一个二零点零是唯一的一个状态了,强制唯一的,即使你没有外部的一个按钮,他也可以是唯一。好,这个呢是取消强制,那么下一个表呢叫做呃,监控表,我们把监控表打开, 这个是什么意思呢?这个就是我可以监控我的地址的一个状态,比如说我在程序当中可能用了,呃,一个地址,在其他 指程序当中呢进行使用了,但是我又不知道他在哪里使用了,那么我现在又想知道他的数据是多少,我就可以在这边呢可以填写这个地址,然后点击这个小眼镜,这个时候呢就知道这个地址他的一个状态是怎样的,我们称之为什么呢?监控表好。

字符串印上符与字符串表达式 植物钻运算符按的加号。 咱们的功能是将字符串运算符两边的字符串连接起,例如中国 and 西安,结果为中国西安。 需要注意的是,在字符串变量后使用连接运算符时,应该注意变量与运算符按的之间应该加一个空格, 原因是符号 on 还是长整形的类型符。当变量与 on 紧挨着时,系统把 on 作为类型符来处理,造成错误。 指数串连接符按的和加号的区别加号运算符要求两边的操作数必须为字符串形才可完成字符串连接。 如果均为数值型,则进行算数运算。如果一个操作数为数字字符串,另一个为数字型,则自动将数字字符串转换为数字型进行算数运算。 如果一个插入数为非十字字符串,另一个为十字形,则出错。例如,双引号幺二加双引号三四进行字符串连接,结果为幺二三四, 因为幺二三四都用双引号引起的是支付串直接连接双引号幺二加 三十四,双引号幺二是字符串,以三十四数值来进行相加,他会把字符串幺二转换成数值,要进行相加,结果为四六。 双引号 a b 加十二,结果出错,因为双引号 a、 b 无法转换成数值型。 按的运算和无论两边的操作数是字符串形还是数字型,在进行连接之前,系统先将操作数转换成字符串形,然后再进行连接。 如果按的运算符左边是支付串常亮,而右边是整数,并且按的与整数紧挨着,在两者可以构成一个合法的八进制数的情况下, 则必须在暗的与整数之间加一个空格。当暗的与整数紧挨着,两者不能构成一个合法的八进制,属实。此时在暗的与整数之间的空格可加也可不加。 如果按的运算符左边是整数,这整数与运算符按的之间应加一个空格,原因是符号按的还是长整形的类型符。 当整数与按的紧挨着时, we did basic 把按的作为内心符来处理,认为整数与后面的按合为一体,是一个长整数,所以造成连接错误。 例如,双一号幺二按的双一号三四进行字幕上连接,结果为幺二三四。因为幺二三四虽然是数字, 但是用双引号引起的,实际上是支付串,直接连接双引号 a、 b。 按的幺二连接错误,系统把按的幺二认为是一个八进制数, 因为按等于幺二之间没有空格。下面呢?上一条 a、 b 按的空格幺二,这个时候按的与整数之间加了一个空格,结果为 a b。 幺二。 下一个双引号 a、 b 按的九,按到一整数之间,空格可以加,可以不加,结果为 a b 九。为什么这个时候可加可不加呢?因为九 不是一个合法的八进字数,八进字数没有计数九,他只有零一二三四、五六 七这几个基数。幺二按的三四连接错误, 因为幺二三、幺二三四都是数值型。把幺二按,系统把幺二按认为是长整形,三四认为是整数。幺二空格按的三四连接错误,系统把幺二认为是整数, 按的三四认为是八进之数。幺二空格按的空格,三四进行字符上连接,结果为幺二三四。



当我们在调试设备的时候,需要对 prc 的内部程序进行上传,那么这个视频我们将给大家讲解一下如何利用博图软件上传 prc 的内部程序。 打开一下无图微,要五点幺, 选择在线与诊断,选择可访用的设备, 现在开始搜索, 这里面搜索到了对应的幺二零零 prc, 选择显示 在此,我们可以创建个项目。 好,我们可以尝试着给对应的这个 prc 进行上传,我们可以发现上传的这个按钮是灰颜色的,意思是说我们不能去上传, 那为什么不能上传呢?双击一下在线和诊断, 可以很明显的看到当前我们 prc 里面使用的博图的版本为 v 幺六, 重新打开图图 v 幺六的软件, 同样选择一下战线与诊断, 也能够搜索到我们刚才的幺二零零 plc, 新建一个项目, 找到对应的 ip 地址,选择在线将设备作为新站。上传。 好,上传成功以后,打开我们 poc 一下面的成一块, 这就是我们之前 prc 的内部程序。好,大家以后要注意了,如果我们 prc 里面的无图软件的版本与当前使用的软件版本不一致的话,那么我们是不支持仅上传的。好, 当我们在调试设备的时候,需要对 prc 的内部程序进行上传,那么这个视频我们将。

大家好,我是老吴,欢迎观看 excel vba 入门开窍课程。这一节课我们来学数组的相关函数 filter。 这个函数大家可能似曾相识,因为我们在第一章学习的时候就学过一个方法, auto filter, 这个 auto filter 他是在工作表里面进行筛选。 我们今天学的这个菲特函数,他是对数组进行筛选,可以返回一个从零开始的数组,该数组包含基于指定筛选条件的制服串数组的子集。我们来看他的语法,一共有四个参数,第一个参数,带筛选的数组啊,注意了,这个数组是一位数组。 第二个查找的制服串,也就是以此为依据对这个数组进行筛选。第三个是一个波尔值,也就是 q 和 forse, 如果是 q 的话,就是包含 force 为不包含。 第四个跟我们上两节课学史不利的函数是一样的,就是对第二个参数查找的支付串是区分大小写还是不区分大小写? ok, 我们进入代码实际操作一下。首先是通过耳类这个函数生成一个一维数组, 然后用 filter 这个函数,第一个参数 b 选,就是带筛选的一位数组,就是这个 a r, 然后筛选的制服是 a。 好,来看一下它会生成什么, 他就返回了一个从零开始的一位数组,分别是, br 零值是 a br 一值是 ab 啊,他就是在这里面找啊 a ab, 其他三个值并没有包含 a, 所以不会筛选进来。好,然后通过消息框 把它弹出来,但是弹出来的时候呢,我再用胶印把这个函数呢把它串成个支付串,与空格隔开,所以我这里简写了来看一下啊,就是 a, 空格 ab, ok, 我们来看下下一个 啊,同样的也是生成一个一维数组。好,我这边呢写入了第三个参数啊,就是这个参数啊,这个布尔兹我写的是 force, 也就是不包含 a, 来看一下他会返回什么 啊?返回了 c, 第一这三个元素啊,所以如果你是写包含的话呢,这个第三个参数可以减写啊,因为默认值就是 q 啊, q 可以不写,如果你是不 包含的话,那你就写上这个 boss 就可以了。来看第三个啊,第三个,我这边呢改了一下,这个 a 是一个大写的 a。 来看一下啊,我这边筛选的这个字符呢,还是一个小 a 啊,猜出来,这个数组呢,只有一个元素就是 a 啊,是因为 区分大小写为默认值,你写和不写他都是区分大小写的,所以他只能找到这个小 a 啊,这个大 a 他就把它排除出去了啊,剩下这些连 a 都没有,那肯定是排除了, 比如说我现在不想去分大小写了啊,那我就这个时候,第三个参数呢,可以不写,因为我们是找包含第四个参数,我们直接写一就可以 啊,是个简写,也就是不区分大小写啊,看一下 好,就返回了 a 和这个大 a 的 ab, 这两个 ok feel, 这个函数呢,非常简单,但是在实际操作中呢,非常实用,下节课呢,我们再用 fut 这函数来做一个综合性的案例。好了,那这一节课呢,就讲到这里,感谢各位看官的支持,你的点赞是我继续创作的动力,关注我,下节课我们将学习新的内容。