粉丝5946获赞1.7万

它的四四眼力功能快 f b, 这是刚才演示的功能快,它有输入参数音 pro 有输出参数 app, 它有中间变量, 就是说在外面调用的时候是看不到的,他只是在功能快内部执行会用到。建立功能快,点击 application, 右键添加对象 p u u, 给他另一个名副 r 五, 当然可以命名其他的选择功能快,选择访问说明符 public, 选择梯形图,打开,这是输入, 这个地方是输出,这个地方是中间变量,这个地方是给他付出值, 这个地方也是辅助值。就是说我在调用的时候 像这样,我没有给他写参数,他就是用的他默认的五百毫秒 调用功能快其实也很简单,在下方再插入一个, 直接在这个 p o u s 里面把它给拖过来。 for s 五,把它拖过来,确定 这地方可以不填,就是用的刚才默认的参数,给它起个名字, led 死, 可以不填, 登录看一下效果,一秒钟为周期闪烁。

四个步骤带你搭建运动控制框架。第一步定义一个 fb, 把常用的功能快都放到这个 fb 里面, 这个 f b 有输入输出的变量作为一个接口。第二步是调用 f b, 两个轴就是两个 f b, 利用了面相对象的思想。 第三步定义一个结构体,结构体里面有控制轴的输入变量和输出的一些变量参数。第四步定义一个结构体数组,这个结构体就是刚才这一个 零到九代表有十个轴,然后在调动的时候,这样的话就节省了定义很多变量的一个时间。

它的色死功能快。 f b 演示,我现在调用了这个快,快的名字叫 f s。 五, 上面的叫功能快的实力化一二三登录演示一下效果。它的功能是实现这个 led 的闪烁 功能快。它有输入参数,左边的有输出参数,右边的 他是有背景数据快的。所谓背景数据快,看一下,就是我选择他的时候,需要我选择具体哪一个快,这个是一秒钟的, 这个是三百毫秒,七百毫秒的,这个是五百毫秒的。 就是说给他分配了内存。这就是所谓的背景数据快。下节课演示怎么定义和调用功能快?

ctc 指针数组的应用,前面我们利用结构体数组封装了这个轴控的 fb, 但是还留下一个问题,如果说我轴数很多,比如说有二十个轴,那么这里要改成二十, 这些都要改,就比较麻烦。这个时候呢,我们可以利用一个指针来进行减少我们的工作量,具体是这样的可以看一下啊, 这个 point 是指针的一个关键字,它指向一个类型,这个类型 access, r, e, f, 杠 s, m 三, 这个类型就是这个电机的名字对应的一个类型。好,这个零到 access number, 它是一个数组,也 也就是说我们这个整体它是一个指针数组,可以看其他地方啊,这个地方呢是有一个 a, d, r, 它是 address 取地址的意思,它取的是这个轴 轴的这个名字的一个地址,把这个地址复制给这个数组, 然后有什么用呢?这个零一二,后面我们要用货循环,这个是代表取这个地址上的一个内容,取内容 这个 ai 是一个变量,零到二的一个变量,这个时候呢,我们一个负循环就能代替很多个轴了,就提高了一个工作效率。

我就应该报警了,对吧?然后我副线位,也就是我们报警实际位置 等于我们这个副线位,对吧? 加上我们的这个报警偏差值,他就应该报警,对吧? 大家看一下这里有没有什么问题?那我们假定,对吧?到一千的时候报警,我们这里有个偏差值,假定偏差值设个一,对吧? 偏差值我们暂定给他设个一, 那说明我们实际位置的时候。

功能跨 fd 在程序的体系结构中位于堵住胯之下, 他包含程序的一部分,这部分程序在五比一中可以多次调用。功能跨的所有形式,差速 和静态差数都存储在一个单独的,被指定给该功能跨等数据跨中,该数据跨被称为背景数据跨, 当调用 fb 时跟背景数据化会自动打开,实际差数的值被存储在 背景数据胯中,当胯退出时,背景数据胯中的数据仍然保持。 下面我们从两个方面来讲解 fb 的编程与应用。一、编辑一个无静态差速 的功能跨 fb。 二、在五比一中调用无静态差速的功能跨 fb。 下面我们看一个实际的例子。 水箱水位控制系统的程序设计,假设有三个水箱一、二、三, 每一个水箱都有一个进进水阀和出水阀。例如水箱一的进水阀是 挖一,出水阀是挖二,水箱二的进水阀是挖三,出水阀是挖四, 水下三个进水发誓挖五,出水发誓挖六。 每一个水箱都有一个液位检测的低液位检测和高液位检测。 例如这是第一个水枪的第一液位决策,也就是最低液位的 的检测,这是第一个水箱的高液位检测,也就是最高液位的检测点。那么同样第二个水箱 高液位检测 u h 二、第一液位检测 u l 二、第三个水箱高液位检测 u h 三、第一位检测 u l 三。 每个水箱下面水的流出,具体用户可以操作,例如 sb 是手动 出水按钮, sbr 是出水停止的按钮, 那么用用户,那么用户可以来操作这两个开关来放水和放水停止。同样,水箱二也有两个这样的开关,水箱三也有这两个,水箱三也有两个这样的按钮。开关 系统有三个储水箱,每个水箱有两个液位传感器, uh 一、 uh 二、 uh 三为高液位传感器,一有效。 ul 一、 ul 二、 ul 三为低液位传感器,零有效。蛙一、蛙三、蛙五分别为三个储水水箱净水电池阀。 蛙二、蛙四、蛙六分别为三个储存水 分别为蛙二、蛙四、蛙六分别为三个储水水箱,放水电池阀。 sb 一、 sb 三、 sb 五分别为三个 存水水箱、放水电磁阀,手动开启按钮。 sb 二、四六分别为三个存水水箱、放水电磁阀,手动关闭按钮。 具体控制要求, sb 一、 sb 三、 sb 五在 prc 外部操作设定,通过人为的方式,按随机的顺序将水箱放空, 只要检测到水箱空的信号,系统就自动的向水箱注入水, 直到检测到水箱码信号为止。水箱注水的顺序要与水箱放空的顺序相同,每次只能对一个水箱进行注水操作,那么他们之间杀客水箱进水有相复复索的关系, 那么项目的操作可以按以下顺序来进行操作,第一步,创建一个 s 七的项目。 第二步,进行应届的配置。第三步,可以编写符号表。第四步, 规划程序的结构。第五步,编写编辑功能框 fb。 第六步,借力背景四句话 d i。 第七步,编辑启动组织跨 ob 一百,然后再在 ob 一里面去调用 fb 一,创建 s 七项目使用菜单发有文件,下面 新的选择新的项目向导创建水箱水位控制系统 s 七的项目,并且命名为无禁 xfb, 这个名称可以自由定义,项目包含组织快 ob 一和 ob 一百,那么 ob 一是主程序,循环扫描的主程序, ob 一百 是初始化程序。第二步,应接配置, 那么在这个项目里面,打开 symac cemeter 三百 station 文件夹,打开硬件配置窗口,并按图手势完成硬件配置。 如这个图所示,在这里面,第一槽配置了一个 ps 电源,第二槽配置了一个 cpu, 三幺五的 cpu。 第三槽空用来配置 im 模块。第四槽主踏了一个 数字量的输入模块,还有三十二个点。第五朝定义了一个数字量的输出模块,还有三十二个点, 他们分别占用的 i 地址、 iu 地址。输入模块占用的地址是零到三这个四个字节,输出地址占用的是四到七,总共四个字节,三十二个点。 这是第三步,编写符号表。那么对项目中可能用到的原件进行了符号编辑。例如五比一是, 这是符号,那么对应的地址是五比一,五比一百对应的地址是五比一百。水箱控制对应的地址是 f b 一,哎, f b 一定义了一个水箱控制的符号, 水箱一地址对应为 db 一,也就是 db 一这一个数据块为水箱一的数据块, db 二为水箱二, db 三为水箱三。 那么下面对每一个 i 屋地址哎进行了分配,并且呢 做了符号,做了符号,比如说 sb 一这一个符号对于 i 一点零, sb 二这个符号对应安逸一点一, sb 三对应安逸一点二等等。 这是编写符号表,符号表是可选项,也就是说符号表可以借,也可以不借。对于复杂的程序而言,编写符号表为编辑 程序带来方便。四、规划程序的结构 pic 启动以后,先执行五比一本里面的舒适化程序,然后再转移执行五比一的循环扫描程序。 五比一直行时,五比一里面在此程序中调用了沙射 f b 一。第一次调用 f b 一的时候,他选择的背景数据块为一比一,执行完 f b 一以后, 这第二是电用 fb 一,第二是电用 fb 一时,相应的背景数据化为 bb 二、 执行完第二次调用以后,然后再执行第三次 fb 一的调用,那么第三次调用 fb 一时,对应的背景数据化为 db 叉, 那么第三次 fb 一调用结束以后,一个周期结束,结束以后,然后再进行下一次下一个周期的扫描, 那么在一个中心里面,他调用了 fb 一,调用砂四,那么每一次都要为 fb 一 配备一个背景四句话,那么沙射调用的背景四句话是不相同的。第一次调用背景四句话为 bb 一,第二次调用 背景数据化为 db 二,第三次调用背景数据化为 db 三。 第五步,编辑功能, fb 一,也就是编写 fb 一的程序,在这个项目内选择 blocks 文件夹,执行菜单命令,插入 s 七 block, 然后选择 fancy look, 也就是 fb 创建功能快。 fb 一由于在符号表内已经为 fb 一定义了符号名,因此在 fb 一的属性对话框内,系统会自动添加符号名水箱控制。 如果符号表里面没有编辑 fb 一的这个符号名的话,那么他直接显示的就是 fb 一 对 fb 一定义局部避量失明表,编写程序代码, 首先定义 fb 一内的定义局部并亮声明表。 fb 与功能 fc 不同,在功能快 fb 差速表内还有扩展地址,例如这是扩展地址,还有结束地址选项,当然可以不用,可以不用。 在这个表里面建立的数据类型有这么一些,一种是 接口类型,为输入的为硬的电量有以下几个,例如电量名为 uh, 它是一个布尔型, 地址为零点零,初次值为 faws, 也就是为 off。 u l 也是波尔型,那么 uh 表示高液位传感器,表示水箱马 ul 表示低液位传感器,表示水箱空。 sbr 表示放水电磁阀的启动按钮 sb off 表示放水电视阀关闭按钮 b 杠 f 表示水枪 b 空操作 bf 表示水箱 b 是空的标记 zf 表示水箱 c 空的标记, 挖 b e 表示水相 b 进水电磁阀。挖 c, e 表示水相 c 进水电磁阀。这里的 b c 有可能是第一个,那么如果 b 是一个第一个,那么 c 就是第二个,那么 b 如果是第一个, c 就是第二个,那么这里呢?呃, 没有确定是哪一个,因为我们在符号表里面,我们在 fb 一里面。呃,可以选择是对哪一个水箱进行操作 按摩,根据调用的次序不一样,那么这个水箱是 b 空还是 c 空,对应的水箱是不一样的 输出数据类型, yain 是当起水箱 a 进水的是法,也就是控制进水的阀门, yaf 的是控制出水的阀门。 af 是当前水箱 空的标记位。那么输出有三个数据类型,一个是 y a in, 一个是 y a after, 一个是 a f m b 一 b a 写的程序, 这是 yafter 的线圈,这里就是当按下启动按钮 出水电视阀的线圈接通,或者是在高液位 转化器动作时,他要接通,也就是异味码了,他要放水,然后这是这是字锁,那么异味低的时候,这里动作 使他断开,就不能再放了,这是 sb off, 是手动人为操作的放水电视阀的停止按钮,停止按钮。 网络二的程序是设置水箱空的标记,在以下几种情况下, 可以把这个标记复位,一个是 bf 动作的情况下,一个是 cf 动作的情况下,一个是 yain 动作的情况下,可以把 af 这一个变量复位。这 u a r 动作的情况下,可以把 a f 这个边量置位,那么这里用到了一条 s r 指令, s r 指令 他是一条复位优先的指令,也就是说当字位端和复位端同时接通时,复位端有效,所以用这里他的标记用这里可以做一个 连锁。网络上的程序是水箱进水的控制, 那么这里控制一个挖 a 硬,也就是进水的电视阀,这位端是 a 杠 f 动作,把他置位。负位端有三个,一个是挖 b 硬动作,也就是 一个是挖鼻印动作,一个是挖西印动作,也就是呃 b 的电视阀动作,或者说 也是也就是 b 的进水电视发动作,或者是 c 的进水电视发动作,那么可以把这一个 a 的 进水电视阀复位。那么这里呢,就是与应位的两个水箱的进水阀进行连锁,这是达到高液位的情况下, 本水箱液位已经达到高液位的情况下,可以把 va 印 复位。那么这里同样是一条 sr 指令,那么 sr 指令是复位优先的指令,也就是当智位端和复位端同时被接通的情况下,这一个变量是复位的,这是水箱进水的控制。 第六步,借力背景数据化。 db 一、 db 二和 db 三, 那么 db 一、 db 二和 bb 三这三个数据块是为 fb 一而借的 数据化,所以我们称为背景数据化,那么背景数据化里面的数据以及数据类型 跟 fb 一里面的数据和数据类型是完全对应的。 第七步,编辑启动组织跨 v b 一百的程序,那么当 s b e, s b 三, s b 五都没有动作的情况下,也就是说在外面没有人啊, 三个水箱的出水电池阀的启动按钮的情况下,那么首先就可以把 进水和出水的所有电视法复位,这是在 prc 运行时执行开始开机的情况下,把五比一摆的程序执行一次,作为出示化程序, 然后在五比一北,然后在五比一中调用无静态差速的功能。跨 fb, 这是在五比一的程序里面调用 fb 一, fb 一就是我们刚才借力的水箱控制的功能块, 在指定数的 fb blocks 下面,把这个 fb 一双击,那么在五比一的主持续中就可以调用。调用的时候,那么 fb 一有一些角,左边的角是输入信号,也就是硬型的变量, 右边的脚是输出变量,也就是阿富特类型的变量,那么这些脚跟 fb 里面定义的印数据类型和 f 的数据类型相多印, 然后在屋边 第一里面调用 fb 一,这是第一次调用对应的数据化为水相依,也就是 db 一, 这是网络二为第二次调用对应的调用数据化为 bb 二,也就是水相二,这是符号。网络三里面的程序是第三次调用 fb 对应的数据化为水箱商,也就是 db 商, 那么在左边把各个信号, 把 fb 一的输入信号送进去,那么这里的第一次要用的时候,这里输入的信号为第 一个水箱的输出信号,那么输出就是第一个水箱的输出信号。那么同样在网络二里面,这边的信号都是我 这边的信号,都是水箱二的各个输入信号,那么这里的输出信号就是控制第二个水箱的输出信号。那么同样第三次掉用时,输入信号 是第三个水箱的输出信号,输出信号是控制第三个水箱的输出信号。 刚才我们介绍了 fb 的编程语应用,下面我们以一个例子来介绍 具体软件的操作方法。 b b 层实现花等于 a x 平方加 b x 加 c 的算法,我们希望 在 fb 一里面来建立一个这样的算法,实现这个公式的计算,那么要实现这个公式的计算, 我们定义输入的数据为 x, 输出为蛙,每给定一个 x 的值,得到一个蛙的值, a b c 为具体的长量,那么可以实现一个这样的 二次函数的计算。下面我们用软件来实现操作。 打开 cement command 九 stable 七的管理器, 听到没有? 下面在菜单文件里面新建一个项目, 假设为 fb ok, 插入一个新的对象,插入 cement 三百的炸点, 双击进行硬件的主套, 在右边的硬件选行插入三百的一些硬件,首先插入一根导轨 reque, 第一槽走他一个 e s 电源,第二第二槽主态一个 cpu, 假设选择 cpu 三幺四,第三槽主态 im, 那么我们这里是一个机架为空,第四槽主态一个 sm 模块,假设为一个数字量的输入,数字量的输出 did 五模块好保存和变异。 下面回到管理器,在 blocks 下面,我们搭机右键插入一个 f function block, 然后打开一设置为以 ld 方式编成,打开 fb 一,下面我们对 fb 一来进行设置。 首先在接口变量表里面,也就是 电量升门表里面,对数据类型,数据接口等进行设置,选择印 数据接接口类型输入型的数据,我们定义一个变量为 x, 数据类型为 i n t, 整数初始值为零,这是初始值。同样建立一个阿富特的数据类型为弯, 数据类型为整数,初始值为零,默认地址是自动生成的。然后再建立一个静态分量,假设为 a, a 是个长数,那么数据类型我们定义为整数地址是自动分配的, 初始值我假设为一,也就是说如果在 p 二 c 程序里面,在五比一里面,你没有为 a 副值的话,他会掉入这一个初始 为一。同样的方法,再建立一个变量为 b, 数据类型为 int, 假设初次值为二,同样再建立一个变量 名称为 c, 数据类型为 int, 整数数字值为三。 那么要实现以上计算,可能需要一些中间的一些变量,下面我们在临时变量里面建立几个变量假设建立一个 一为按眼影题展示, 下面我们来编写程序,先加入几个网络啊 con 九 r, 我们要实现 a x 平方加 b, x 加 c, 那么首先我们来算 x 平方,用乘法指令,在整数计算 功能里面有乘法指令,把 x 乘以 x, 得到一个数,假设保存在临时变量一里面去 x 乘 x 存在一里面,然后再做一个乘法,一乘以 a, 算出来,存到,存到一里面,那么这里得到的一就是 ax 的平方, 下面我们来算 bx, 还是用乘法指令, bx 就是 b 乘以 x, b 是一个 在浸泡啊变量里面定义的一个变量,我们用井号 b 来进行输入, 刷出来一号,假设存在另外一个变量里面,那么这里呢?我们再在临时变量里面再定一个 f 的变量,假设是一个 i n t 整数,那么把这里计算的 鞋结果存放到 f 里面, 那么这就是 bx, 那么刚才算出来的一 是 a x 平方,这里刷出来的 b, x 是 f, 那么我们可以把他们加起来,加起来的话就用加法指令 把一和 f 加起来,假设存在一里面去, 那么相当于是已经做了算法, ax 平方加 bx 刷出来了,然后再用一条指令加法指令, 把一加上 c 符号选址井号 c 加起来以后,然后再存放到蛙里面去,蛙就是我们要得到的计算结果,从蛙的剐角进行输出, 那么这个程序 fc 一的程序, fb 一的程序就编辑好了,下面保存。 保存以后,下面我们回到管理器中,在管理器中 vfb 一 借力背景数据化,在空白的地方搭机,右键插入新的对象,选择 db date block, 那么假设为 db 一建立的这个假设建立的 db 一 这个数据化为背景数据化,选择 instance bb, 那么这一个背景数据化对应的功能化为 fb 一,也就是说 db 一为 fb 一的背景数据化。 ok, 那我就建立了一个 db 一的数据化。同样的方法,我们再为 fb 一建一个背景数据化,也就是建两个 db 一和 db 二, 同样为背景数据化。为 fb 一的背景数据化。 ok, 那么我们可以打开 fbd, 我们可以,那么我们可以打开 db 看一看。 db 一里面的数据 结构跟 fb 一里面的所有结构是一样的,有 x、 y, x 为输入型,蛙为输出型,有 a、 b、 c, a、 b, c 为静态的 b 六 初始直,这里都掉出来了。好,下面我们把这个数据化关掉,下面在污 b 一里面进行编程来实现吊用 内容。我调用 fb, 在指令数 fb blocks 下面把 fb 一双击吊用。吊用的话,这里上面要指定一个背景数据化,我指定 bb 一,那么 x, 假设输入是 m w 零,哇,假设是 m w 二,也就是说把 m w 零里面的数据送到 fb 一里面去计算,算出来的结果从 覆盖 mw 二,那么这里面调用 fb 一的时候,里面用到了 abc 杀个静态背量,在这里并没有给 abc 杀个静态背量负值,那么他就 调用了 fb 里面定义的初始值, a 等于一, b 等于二, c 等于三。 同样,如果你要对 abc 的数值进行更改,是可以更改的。例如我们加入 一个网络, 在网络二里面,假设我要对 a 的值进行修改, a 的值也修改为二,那我可以用一条传送之力 传一个二到滴滴二点滴滴 w 四, 那么这一个地址 db 二点 dbw 四跟符号表里面的,跟 fb 一里面定义的这个变量差速,也就是 db 二里面的 差速地址是对应的,那么 db 二里面的 db 四的 ddbw 四的地址 就是 a 的地址,我们可以看一看,把 db 一或者是 db 二打开, 得到 a 的变量,地址为四,其实地址为四,那么就是 d d 二点 d d w 四, 这样的话就把 d b 二里面的 a 的地址,那么这样就把 d b 二里面的 a 的数据修改为二, 下面我们进一次,下面我们再调入一次 fb 一,那么这里选择的数据化为 db 二,那么 abc 的初始值 a 的直距变老。假设这里还是假设这里设定 mw 是零,这里输出是 mw 四。 下面我们把程序下载到仿真性里面,仿真运行一下,看看运行的结果。回到管理系中, 打开仿真线, 接控几个数据, m w 零, m w 二和 mw 四, 好,把这些五比一, fb 一, db 一, db 二都下载到仿真戏中, 然后把硬件主踏的 硬件也下载到仿真系中,下面我们就可以看到仿真运行的结果。运行, 把 ob 下载到仿真西中, 把 fd 一下载到仿制器中, 把滴滴 下载到仿真器中, 把 bb 二也下载到防尘器中。 我们看看程序运行的结果。运行这个时候,当 m w 零为零的情况下,算出来 mw 的值为三, mw 四的值为三, 那么也就是把 m w 零的值当做 x, 那么 m w 的值是 y 等于 a, x 平方加 b, x 加 c 刷出来的,其中 a 等于一, b 等于二, c 等于三,那么这里呢? m w 四也是油蛙等于 a, x 平方加 b, x 加 c 刷出来的。大是这个时候是第二次要用 fb 一,所以这个时候 a 的值是等于二, b 的值也是等于二, c 的值是三,因为我们在 db 二里面把 a 的值修改为二,做了修改,下面我们把 m w 零的值设定为一,看看运行的结果。那么这个时候 m w 二刷出来的是六, mw 四刷出来的是七,因为这个时候 m w 二的函数是蛙等于 x 平方加二, x 加三刷出来的,而 mw 四刷出来的结果是蛙等于二, x 平方 加二, x 加三算出来结果,所以他算出来等于七。 另外我们在 这里面,在 blog 下面也可以建一个 并列表,来对 fb 一里面的用到的数据化的数据内容进行填空。 下面我们建一个 vit, 也就是一个变量表,把变量表打开,下面我们对 db 一里面的数据来进行接控。例如我要接控 db 一点 dbw 零, 四驱铁式的格式定义为十进制, 然后接送滴滴一点滴滴 w 二,滴滴一点滴滴 w 四,滴滴 一点 dbw 六, db 一点 db w 八,数据类型,数据显示的格式,我们都把它改为 使劲吃, 然后啊接控,这个时候这个数值为一,相当于是 x 的值, 这个值为六,相当于是 y 的值。那么 d b 一点 d b w 四相当于是 a 的值,这是 b 的值,这是 c 的值。也就是说这是 f b 一的背景数据框里面的 d b 一的具体的每一个数据, 这个为 x 的值,这个为刷出来的挖的值,这是为 a 的值,这是 b 的值,这是 c 的值。所以我们可以用电量表来分析,来揭示 fb 里面的每一个数据。 好,关于 fb 的变声与应用,我们。


迅捷 plcfb 的使用和封装,应粉丝的要求,给大家录制这个 fb 的使用视频。首先了解一下 fb 它能干嘛?我这是一个气缸的,报警的 fb, 可以实现一个重复调用,这是它的一个功能,就是重复调用。 这里再打开一个三十二轴的 f b 的封装,这个呢是一个三十二个轴的 f b 封装,可以看到 通过这种方式呢,可以实现一个轴一个快,这样的话可以实现重复调用,减少我们的一个工作量。 同时呢我这个也用到了结构体数组,为了方便大家理解啊,我现在从零开始教大家怎么封装 f b, 在哪个地方创建 f b 呢?找到左边有个 p o u, 新建 p o u, 给它起个名字,比如说 l 呀,面积选择 f b, 语言选择贴心图或者是语言, 这个地方是变量区,可以添加变量,输入变量,比如说半径啊,这是数据类型,可以选择,我们选择浮点数,给它一个注字叫做半径。 然后呢我们输出,输出,我们需要的是面积 s 面积, 再有一个中间变量,中间变量用 w 啊,这个类型用 w, 比如说我们是半径的平方 r 二 放进的平方 好,现在可以 l d s m 零符点数的乘法 e m u l r 乘以 r 等于 r 的平方, r 的平方乘以三点一四一五九,就圆周率等于面积 s。 这个 f b 呢就封装好了,封装好了以后我们保存一下啊,这里可以看到,然后调用的话,我们可以敲它的名字 area 回车啊,它会弹出来,弹出来这个框确定就可以了。这个地方我们输入变量啊,目前不能输计算器,只能输变量,比如说 r r e, 这是半径面积 s s e, 注意这个输的时候不要和系统继承性冲突了,我们可以复制粘贴啊,可以实现一个重复调动,把上面的改了,这个也改了, 可以发现我们改的时候他会弹出这个变量窗口,是变量的类型,变量的名字,然后放到这个全局变量表当中,他属于全局变量。 好,现在就搞好了,我们可以在全局变量表当中给他映射 我们 p l c 的地址, h d 零, h d 二, d 零 d 二。同时呢,我们可以这个变量表是可以导出的,导出到 excel 当中啊,可以编辑,也可以导入, 可以实现一些变量化的编程,不同工程当中可以使用。好,我们放大一点,然后把程序下进去看一下效果,下好了以后,我们可以改变它的值, 放进等于一,面积等于三点一四二三啊,就实现了我们要的功能。这个也是可以的, 同时呢,我们可以关闭这个 zce 列框啊,可以给它缩小一点, 可以打开这个自由监控,这里也可以缩小一点,这样的话下面这个就不用移来移去了,可以添加我们的 h d 零,它是一个浮点数监控两个。 添加 d 零,它是浮点数监控两个。 ok, 这里呢我们也可以实现一个更改,同时可以鼠标右键可以把它添加到自由监控,就能把这个变量也添加过来。好,我们改变这个变量 五,改成六,可以发现啊,这个六变成了六,这个也变成六,说明他们两个底层可能是通过指针来实现的,他们是操作一个同一个地址,这个也是可以的。 s 三改为三啊,这里呢?也变成三,改成六,这里也变成六,说明他们两个是通过指针啊。好,这个是一个简单演示,下节课我们讲解气缸 f b 的封装。

今天我们继续讲解第六章系统库的运用。我们今天所要讲的内容是字符串的处理学方法, 在我们平常的项目中,特别是牵扯到通讯的时候,基本上会牵扯到对发送或者接收的一些数据的字幕上做一些处理。 那处理这些支付站所用到的一些函数,就是在系统库的 standard 这个里面。 像我们切到这个程序,点开库管类器 dna, 下面有一个均方形,提供了这么多有关连接,删除、查找、插入以及相关的一些 pou, 我们可以看到 他所有的都是一个方形,就是所有提供了速算处理的这些方法都是一个函数,那我已经在 may 函数中把所有的方形的函数是组串的一些函数都写到这边来了, 那采用的就是我们之前讲到的那个调试调试函数的这个模板程序。首先是一个 kiss, 下面是一个取反的一个动作,保证我们只会执行一次。下面我们直接登录到这个程序, 因为测试这些方形的时候,它会有很多很多对应的支付商或者接口,所以我们在待测试这个 man 函数中 定义的定义一些 inter 型的, string 型的,或者是 word 型的,或者是 real 型的一些变量,然后供我们在测试这些 p u u 的时候去使用。 首先测试,测试第一个就是这个 can cat, 我们可以通过拖动这个放到右边这个摇,然后实现一个双屏的这么操作,右边 位置稍稍动一下光标放在这里,你就可以大概看出一些简单的一个英文的这么一个函数的说明, 这个其实就是一个连接,连接两个字串中间,那下面我们直接运行一百 s e 就得到一个 hello word, 这个比较简单。然后这个删除,删除,我们看一下 delight 这边,它是删除 link correct, 就是删除 lin, 连是在这边是,也就是这个 r 一表示就连还有个 pose, pose 代表的是 从哪地方删除,他说零到一都是指向第一个组成,那么我们先从零开始,我们删除大概两个字符, 理论上来讲,我们触发幺零幺的话,他会把 h e 删掉,还有只剩下 l l o, 我们验证一下,触发 幺零幺发现它并它只删除了一个 h, 所以说它这个注数讲的 pose 等于零,也就是对应这个 i r 的这个虚音 pro 的这个变量 input 型的这个边呢?呃, 在实际我们操作起来发现好像不是这样子,就是零,他指向的零跟一的返回其实不一样,我们看一下把这个 ir 也就这个 pose, 我们从第几个字母开始删,我们来改成一, 同样出发幺零幺,那当前返回就是 l l o, 跟我们设想的是一样的,也就是这个 i 二等于一,表示从第一个字母开始删,就是从 h 开始删,删两个,把 h e 删掉,刚好剩下 l l o, 这才是对的。那如果改成零, 那他这个返回值就跟我们想象中的不一样,实际他只删掉了一个字符。 所以对于系统提示说的这个 pose 等于零或者一,都代表第一个主串,其实可能在是运行或者说你发现是有问题的。所以我们在使用 delight 这个方形的时候,一定要把这个 pose 从一开始,也就是说,呃,所有的 in function 我们后面也会看到有关有关字幕上所引的,它不是像我们的数组一样都是从零开 开始,他是从从一开始,也就是说第一个字符就是一,第二个字符就是二,那下面我们把这个 ir 改成二,那第二个字符是 h e e 开开始,也就是删除两个字符,就是把 e l 删掉,还剩下 h l o, 那我们再出发幺零幺, 那还是用 h l 没有问题,那这个就是 delet, 那 find find 就是查找,指不出来,那从 hello 里面去查找,比如说我们查找一个 l l, 输入幺零二,返回,这是一个三,那 l l 第一个 l, 也就是它的访问,这个三,我们可以看到这个三代表的是第三,第一个 h 是一, 意义是二, l 杠是三,所以说他返回值的这个 find 这么一个,所以呢值三的技术也是从一开始的,他跟我们大部分有一些总串了,这么所以呢返回值从零开始不一样,这就是我们 那在处理一些,在处理一些查找缩影的时候一定要注意,就是 find, 它的返回值的缩影是从一开始的,不是从零。那 insert, 然后我们也可以点一下这个 insert, 点到这个图形发现,也就是说它指的就是把 string 二的插入到 string 一,然后插到什么位置呢?这个位置是用 pose 来指示的,也就是说比如说我们插入一个一二三,从第三号开始插入,从第三呢就是 l h e l, 那也就是说插入完了一个字不算,应该就是 h h e l, 然后加上一二三,然后再 l o, 应该就是类似于这么一个总称,我们验证一下,那出发幺零三, 那 h e l。 跟我们刚刚讲的这个是一样的,所以这些自助串啊,就是单个的方形,看上去并不是特别复杂,我们如果对它的注视 呃,不是特别理解的话,你就可以直接就是实际呃运行起来测试一下,那你对他的这么一个,整个整个方形的一个理解就会更深入一些, 那紧接着就是 left, 那这个应该比较简单,就是截取自助串左边的三个,那幺零四触发应该就会返回 h e l h e l 那这个是计算字,不算长度的,那等于,应该是等于五幺零五,返回去等于五,没问题。 mind, 这个就是结局,这部串你可以看一看这个 mind 的函数 lan r e 就是截取五个字母串,那从哪里开始?从从第二个字母串开始,第二个在这里代表的是 e, 那截取五个,那我总共珠串长度才是五个,所以说他应该是会把所有的全部截取掉, 也就是说幺零六 s 一的返回值应该是 e l l o。 我们出发一下幺零六,那 e l l l o 没有错,也就是说如果你的 r 一的长度超过了它走向这么一个数量, 那也就会把剩下的全部截截取掉啊。如果我们从一开始截取两个,那应该是从应该返回的是 h e, 你再触发幺零六 h e, 没错。 replace 替换来替换,我们再点开这个,一个 d l r e 代表是一个长度, 然后一个 p 代表的是一个位置,从哪里替换? 对,这个不是理解,没有不是特别理解,没关系,那我们就直接验验证一下。比如触发幺零七, 我们看看幺零七,它就等于幺二三 l l o, 那大概就是什么意思呢? i r 代表的是就是这个 p p 的位置,是一个位置从哪里开始替换? 从一的话就从 h 第一个字符 h e 开始开始替换,那我替换几个字符,替换两个字符,把 h e 替换掉,用什么东西用 s 四去替换,所以这个就比较清楚了。那我们在一二三四五六七八九 换成 this is 这样子,我们假设把这个五六七换掉,那五六七应该是第五号开始 把五六换掉,呃,把五六,把五六换掉,五六换成 q w e, 然后就应会应该会变成一二三四 q w e 七八九,我们触发一下幺零七 q w e 七八九 问题就五六没有了。所以说再次就是对于这个他的解释,不明白的话你就去测试一下就可以了。 right 应该是比较简单,就是右侧去这三个,直接触发幺零八 啊,去两个口就八九。那刚刚所进行的就是所有的单个功能,我们都 去那个计算了一下,那下面我们自己做一些小的功能,比如说像我们比较比较硬的,比较经常的就是比如说合成字不串,那相比于系统提供了这种字不串的合成,我们可能会两个字不串,中间会加一个分割 的这种方式,那我们实现这个,所以有个分割服务,那可以两个两个字不串,那如何去使用我们的提供的这些个方形,然后去做一个我们自己想要的一个功能,那这个 这个也就是说实际上就是先把菌一跟这个分割符先做一个连接,然后把连接的结果再跟这个菌二再做一个连接,那就完成了。我们添加一个分割符的这么一个,组成连接的这么一个方法, 那 as comp cat 二,等于 string 一分割符 这样一个结果给到他,然后再去连接上你的 contact 二,那实际上这样的话,那也就完成了, 下面我们直接试一下幺零九幺零九 s e 等于 s concate 分割符,我们使用逗号 第一个 s 三,第二个 s 四,直接 ctrl 一登录, 直接运行幺零九,应该会变成一二三四五六七八九,逗号 q w e, 那结果就如 我们所料,那如果,嗯,如果我们需要连接三个呢?就三个字母串 c 一二三,怎么办呢?再创建一个, 再加一个三, 然后像这样子再写,继续往下写也是没有问题,但是会特别复杂,嗯,会写的特别多的。行, 我们其实还有另外一个办法,就是说我们可以先使用已有的这两个,已有的连接两个组成的这么一个方法,那我们先使用它,使用 你已经有的这两个,嗯, steam 一, spin 二,那这个就已经完成 spin 一二的这么一个,下面再怎么办呢? 那还是在用它。那把之前的这个结果放在这里,来,这边连上数据三,这样不就可以了? 就是可以利用已已有的,那下面我们再测试一下 幺幺零三, s r ctrl 一 给一个 l k, 触发幺幺零,可以看到 l k 逗号一二三四,然后也能达到我们的一个要求,那有人说我可能需要四个,以此类推,你再写一个,写四的时候记得 这边用什么呢?这边用三,先用一个三,再用一个,再用一个二,然后就完成了, 他们这个四五也是同样写法。那如果我要连十个,那是不是说那是不是我要一直从二一直做到十?那也不需要, 也就是说大部分的我们的一个使用场景可能二到五就足够了。哎,就如果是五的话,如果是你真的是要连十个字不算的话,那我们可以 在我们的程序中直接使用两个五连的,然后去组成一个十连这么一个速算就可以了。呃,也就说没有必要你要去从二做到十,如果他需要有连接二十个速算,那也要一直做到二十,这也不太现实, 那这个就是支付串连接的。然后我们就讲到这里,那既然有支付串连接,那肯定有支付串切割,下面我们做 一个把我们输入的主串按照我们指定的分割服务切割开来。那这边 首先首先我们先考虑下这个算法,那就是我们首先要找到这个分割符所在的一个珠串,然后再使用一个什么呢? left, 比如这个这这个方向的反应位置在哪里?然后我们使用一个 left, 所以把左边的这个给它切回来就可以了。 那我们先看 find 的返回词, find 的返回词是是什么呢? 拖到这边呢?发的反而是一个 inter 型,我先定一个 inter 型的变量, 使用 i index 等于 fight, 从哪里找?从这个 s input, 我们输入了这么一个参数里面去找, 找什么?找这个分割符,返回了一个返回了一个方案的这么一个缩影值。由刚刚我们测试知道他这个值是从从一开始的,也就是说 假设我们是一个一二三逗号,假设是一个一二三逗号四五六,那么你这个 对这个子弹进行一个查找,这个逗号他返回的是应该是一个四,但我们其实只需要前面三个,所以说对当 选的这个算法,那么直接第二步,利用这个 left, 利用这个 left 并联 as input, 根据这个的返回值 index 减一其实就可以了。像我们测试一下 幺幺幺 s cut left, ok, 看一下我们接口,第一个是输入助算,第二个是分割符,这个顺序一定不要搞错, 我们要切割的是 l k, 不对,我们就输入刚刚所说的一二三逗号四五六,然后我们可以在这加个断点, 直接幺幺幺滚出 qq 进去 alt 加二进入,加入先查找,刚好等于四四减一三 left 去三刚好帮我返回一二三,没有问题 啊,这个就是使用就是 dana 助战库提供的这些最基本的方形,然后我们再去实现我们程序功能中所需要的这么一些常用的这么些方形函数。 那有关这个 standa 的这个字母串的处理,我们今天的内容就讲到这里。