粉丝3.5万获赞12.6万

fb 是比 fc 多了一个背景数据块,那我们在博图里边看一下 fb 是如何使用的。首先呢,我们还是新建一个块,选择 fb, 然后我们给他起一个名字,选择好语言,然后确定 好。这样呢,我们就建好了一个 fb 块。 fb 的使用方法呢?他可以像 fc 一样使用。首先呢,我们在 fb 里边建一个输入和输出, 好简单的编一个小程序, 像这种简单的程序 ufc 也是一样可以完成的。那比如说我在 fb 里边如果想使用一个定时器 tp 或者是 tr, 那么这时候我们拖债到程序里边去之后,因为是 fb 块, 所以他多了一个多重实力啊,注意这个,这个如果是在 fc 里边是没有这个的好。一般情况下呢,我们使用 fb 块都会选择多重实力,如果选择单个实力呢,他就会分配一个唯一的一个 db 块,这样的话呢, fb 在多次调用的时候,他就会产生冲突。 所以说我们讲 fc 的时候就说这个先不用建建接口,从外边引入,但是 fb 就不一样了, lb 有多重实力,我们看一下,我选择多重实力,起名叫定时器。 好,我们就给定时器分配了一个地币块,那注意现在这个定时器还没有分配实际的一个存住区。 好,我们设定时间。这时候呢,我们看看定时器这个接口放在哪去了啊?注意他是在 static 里边,这个是静态 数据,或者叫静态边料啊,在 fc 里边是没有这个接口的,那接到这里边有什么好处呢?要注意我们在外边调用一下,看一看,把 fb 拖这道程序里边去,注意需要给这个 fb 分配一个背景的数据块啊,比如说我叫数据块 一,叫数据块一,我再调用一次 fb 叫数据块二, 这样的话呢,我调用了两次 fb, 每个 fb 呢,有自己单独的一个数据块啊,第一次调用用的是 db 一,第二次调用用的是 db 二,那刚才那两个定时器的数据放在哪了呢?注意,放在这两个不同的数据块里边,第一次调用里边用的定时器, 他的存储空间用的是数据块一里边的这个数据啊,第二次调用的时候呢,用的是数据二里边的数据啊,这样就不会产生冲突啊,所以这个方法还是非常好用的 好,比如说我在这里边如果用了定时器,我还需要用一个计数器,也是一样的,比如说我来个加计数,还是选择多重实力 好,给一个技术值好,这样的话,我们看在 static 静态数据里边啊,他又多了一个计数器的一个接口,好,更新一下,好,如果是使用 fc 这种情况,需要建两个接口,然后呢,在外边还需要建四个 db 来对两次分别调用所使用的数据块来进行添加。那如果是 fb 呢?像这种只有一个 db 块,这一个 db 块里边呢?装了两个定时器的数据看一下。 如果在这个 fb 块里边,如果使用定时记计入器和边缘处罚的中间边料,都可以在 static 里边来建立,这样的话呢,无论你这个 fb 里边使用多少中间边量,他都会打包的放在 db e 里边 啊,这样用起来是比较方便的。而且这接口他也有地址存储了啊,他的地址呢,也是在这个 db 一里边,或者或者是第二次掉到 db 二里边,所以他就可以有一个初始值, 初始值呢,比如说我可以可以在这里设置啊,这就是 fb 块的用法。所以说呢, fb 可以当 fc 用, fc 也可以当 fb 用啊,只是简单 复杂的问题。如果你呢这个建立这个块是只使用一次,那就可以建 fc 块来用。如果这个块你想使用多次,而且这块里边需要用到定时机和计时器,或者是边缘处发,那里边需要建中间边料, 这样呢,为了防止冲突,我们可以使用 fb 块,然后在 fb 块里边呢,如果是 需要用到定时器或者计入器,包括我们以后一调用其他的 fb 块啊,就是欠套时调用在 fb 一里边,再调用其他的 fb, 这个时候呢都要选择多重实力啊,这样多次调用的时候就不会产生这个数据的冲突。

大家好,今天给大家介绍一下这个博图里的查找和替换功能啊,我们点击编辑,大家看查找和替换,处于灰色状态不能点选啊,原因是什么呢?哎,我们这个主程序没有打开 啊,处于这种状态下,我们再选择这个编辑,然后是不是查找和替换就可以选择了点开啊,那么假如说我这个时候想要查找这个 q 零点零,对吧?我们输入 q 零点零 查找,哎,大家看,哎,他提示未找到,搜索像啊,也是找不到这个 q 零点零,原因是什么呢?就是薄图都是基于什么 哎,符号选址的,也是说变量名称进行选址,对吧?哎,这个时候你怎么才能查找到呢?就是查找他这个变量名啊,这里 连贴查找,大家看是不是找到了第一个 q 零点零,并定位到这里了,对吧?然后再查找下一个,是不是这个 q 零点零就有了啊,再向下查找 啊,提示你搜索已经完成,是不是大人说呢,我 fc 一里仍然是有 这个 q 零点零的,对吧,也是说子成序里是查不到了啊,这个大家需要注意,那么我们如果想把 q 零点零 啊替换成 q 零点一怎么办呢啊?同样的插找这里,这里写一个 q 零点一啊,全部替换 啊,替换完成是不是,是不是都换成了 q 零点一了,对吧?当然了,这个 q 零点一这个变量名称哎,我们可以提前把它定义好啊, 这个就是他的查找和替换的功能,子成序里啊,是查找和替换不到的,这个大家需要注意啊,更多内容见我幺二零零 vip 课程。

针对于西门子的 f b 函数块,有这么几种接口类型,第一种是 input, 就是这个 fb 他读取的数据啊,他不能对这个数据进行写入,就像我们人看到的东西是我们采集到的一样。 fb 采集音 pro 接口的数据啊,但不能对这个变量进行写入。 alt put 呢,是输出,是这个 f b 的程序处理之后输出出去的变量,就像我们人呼出去的气,或者我们人用力打出去的一拳这个力一样啊,这是我们输出的。 in alt, 就是针对于这个接口,我们既可以读取也可以写入,比如像声音啊, 我们又既可以采集声音,又可以说话输出声音啊,这是类似于音。 alt 就是我们既能读取又能输出。 这个 static 是静态变声的意思,就是存储在这个 f b 中的数据 啊,在外部没有相应的接口。我们看这里面啊,没有相应的接口,只有 in alt 和 in alt 这三种类型的外面有接口。 static 是没有这个外部接口的啊,它是完全是自己内部用的数据。 然后 tamp 呢, tamp 也是自己用的内部的数据。不同的是, tamp 只保持一个扫描周期啊,他只在程序的一个周期内有效,就每一个周期都会给他重新进行 写入啊。大家只要知道 static 是静态变量持续的保持的,它是自己能保持上一个循环的状态的。 tamp 呢,是只保持只在当前循环保持它的状态,到下一个 prc 扫描周期,它就不保持这个状态了。 constant 就是常亮,它的主要特点是在程序运行过程中啊,不会被更改。如果视频对大家有帮助,请大家多多点赞、评论、转发、关注、支持,这样我才能有更多的精力投入到视频中来,谢谢!

大家好,我是老王, 今天让我们来学习一下一个新的知识,西门子 plc 中的 fbd 语言, 今天之学习 fbd 的一个指令与指令。首先打开薄图,我们新建一个 ob 块,选择 fbd 语言重新命名一下, 大家不要忘记点赞关注,有问题可以评论区留言。 大家先看下这个 fbd 语言 编程,见面看下常用指令, 打开这一个 ob 块,拖动这个符号的指令, 这个指令是与运算按 f 一查看一下,帮助大家看, 大家也可以在自己电脑上看下这个帮助, 这个指令大概意思是输入信号全部都唯一输出才能有信号。让我们来切换到编程界面,看看 新渐变亮 还是简单一点的。按钮控制指示 按钮三和按钮四,控制指示灯三, 编辑好的变量开始定义, 这是一个简单的视力程序, 添加指示灯三, 这个符号的指令含义是复制, 把指示灯三写上, 重新定义变量。 程序写好了,让我们来模拟运行一下,让我们切换在线模式,开启监视设置信号,看一看效果, 大家看到了吗? 需两个输入同时有信号输出,指示灯才接通, 单独一个按钮接通输出无信号,放大一下看看效果, 大家不要忘了点赞和关注啊。 fbd 程序在在安全程序上用的很多, 下一期视频咱们介绍一下安全程序上如何使用,让我们再添加几个输入来看一下, 还添加两个按钮, 可以用按钮一和按钮二 添加完成后重新下载程序在线 大家请看。四个按钮输入,一个指示灯输出,四个输入同时接通指示灯三才接通, 四个输入中有一个没有接通,只是登三就不接通。 今天就分享到这里,下期见。

大家好,今天给大家介绍一下如何通过背景 db 来对这个我们的程序进行调试,哎,这里我写了一个最简单的起跑亭的 fb, 是不是我把它关掉啊,然后在这个 obe 里对这个 fb 进行调用,是不是?然后背景 对不对?给他起一个名字 p 幺零幺,是不是?然后,哎,我们看默认的情况下,这是变量,哎,我们 在这个快场是无法进行修改的,对不对?我们在线一下是吧?啊,那么要调试这个程序,是不是我们要进到这个背景 db 啊,进行在线,对吧?然后修改它的值啊,比如说把它双击一下啊,修改 一啊,再修改为零,对吧?哎,这样是没问题的,但是变量多的时候呢,哎,就显得很繁琐,是不是啊?接下来给大家介绍一个简单的方法啊, 我们就用背景这个 d b 当我们的十三啊,是不是?这是这个背景 d b 啊,啊, 对吧?然后我们把它直接拖到这块上来啊,然后在这个停止拖过来啊,点击启停拖过来,对吧?然后我们这样子再下载一下 啊,在线,哎,是不是我们就可以直接修改这个值了,对吧?非常的方便啊,是不是?哎,用背景 d b 做实餐,可以提升我们 程序快的调试效率,是不是啊?停止对不对啊?没有问题,是不是?哎?哎,这个就是一个简洁的方法啊,更多内容,建我幺二零零 vip 课程。

大家好啊,今天呢,我们就讲一下怎么用这个 f c 块和 fb 块来做这个七宝亭, 那么前几节呢,我问过一个问题啊,就说你觉得齐宝婷是用 f c 块做还是 f b 块做啊?那么今天呢,我们再实现一下,首先呢,我们建立一个 f c 块啊, f c 块语言呢,什么都行啊, s l 也好, l d 也好啊,那么这个就叫 f c 杠一啊,随便随便名字啊,那这个块呢,我们建立好之后呢,在他的输入输出中要添加启动 停止啊,启动停止,然后输出呢?加个输出啊,然后呢,我们就可以写程序了啊,输出等于 启动 out 输出 and not and not not 停止啊, and not 停止 就一行程序啊,一行程序输出等于启动哦,输出 and note 停止。如果用提醒图表示呢?怎么表示呢?我们用提醒图再表示一下,那么启动停止 输出啊,其实就是这个啊,输出等于启动或者停止,按着 note 停止啊, 比如这是启动啊,这是启动,当然我没见变量啊,他会报警的啊,停止停止啊,然后呢,这个输出啊,就是这个这个啊, t 型图和它是同理的,那输出, 那么如果说我用这种方式来做这个起跑停,能不能实现呢?大家说能不能实现呢啊? m 二点零, m 二点一, m 二点二啊,大家来分一下,那么 f c 块的特点是什么呢?它的特点呢,就是不能进行保存数据,那不能进行保存数据,当我们每个扫描周期开始的时候,那么它的数据都 会变成零,都会变成零。而然而这个 f c 块的输出输入啊,输出输入还有个特点就是输入呢,只读不写,输出是只写不读啊,只写不读 就是输出,可以我们对他进行读,但是呃进行写入,但是读是读不过来的啊,读不过来的啊,有的时候这输出啊,这样写会报错,所以这样写啊,实际上他是不能达到起跑停的效果的啊,我们不相信呢,可以呃试一下啊, 通过这个小例子啊,我们了解,正好能了解一下输入输出的特性啊,到底是什么关系。 比如说我这里呢,按启动,这输出是 on 了,但是当我们把启动关掉的时候,输出要 off 了啊, you force force 又关闭了,所以这他就达不到输出的目的了啊。那同理,我建个 f b 块儿,比如说我建个 f b 块儿,不改名了啊。 呃,还是用 i c 而言嘛,为了统一,我建个 f b 块,大家看一下啊,如果用 f b 块来表示呢,那么它就能达到起跑亭的目的啊。 f b 块同样是启动 停止,然后 alt 是输出啊,输出,比如说我同样的语法,同样的这个程序,那么我 f b 块也是七宝亭,然后呢,我调用 f b 块,再调用一个 f b 啊, f b, 因为 f b 有背景数据,所以呢,我们启动 m 三点零, m 三点一, m 三点二啊,同样的啊,同样的 写法,那么我们看看,对比一下,看看 f b 块这个能不能进行起跑起跑停,然后修改为处,那么它就会昂啊,然后修改为 force, 大家看,现在这个 前面输入呢,都是 force, 都是 off, 但是输出已经变成昂了啊,变成有输出了,然后我们再把这个停止在 操作一下,那么他就会断开了啊,这里我们就看到了啊,我们 f b 块 f c 块程序是一样的,但是呢,他的, 呃, f b 块呢能保持输出, f c 块不能保持输出,为什么呢?就是因为 f b 块有个背景数据,他会把输出这个值啊, 一旦他保持昂了啊这个输出,那么每个回合呢,这个输出呢,都会读取上一个扫描周期的状态啊,然后呢进行呃比较, 因为上一个是输出是 on 的,那么这个回合呢,因为 on 和 off, on 和启动呢,是一个凹的关系,然后再加上没有按停止,所以呢,我还是输出,而 f c 块不同, f c 块呢,每个回合呢, 他都会清零啊,因为他不能保存输出的值,当我们周怎么周期开始的时候,输入输出停止都会清零,所以呢,他就实现不了起保停的 这个效果啊,实现不了这个七宝亭的目的,我们想要做七宝亭啊,七宝亭,那么怎么让他能实现七宝亭呢?怎么让他实现七宝亭呢?大家可以思考一下啊,怎么实现七宝亭,我们把这个输出啊改一下, 改到音 alt 中啊,音 alt 中,我们只要把输出改到音 alt 中,我们就可以实现七宝亭了,为什么呢?因为这个音 alt 呀,是可读可写的啊,可读可写的,我们就用外部变量来存储它的输 输入输出状态啊,输入输出状态,那么我们再回到这个块中啊,因为我改了,变亮了啊,更新块调用, 然后这时候呢,我会发现输出在左边,然后很多同学在潜意识里就觉得,哎,这个在左边,他怎么能叫输出呢?我们的输出不是都在右边吗?啊,不是的啊,就是不管在左在右,这个变量定义的是输入输出,还是说输音 out, 那么他就具备音 out 的属性,不管他在哪里啊,不管他在哪里。所以呢,我们下载到我们的 prc 中,我现在是仿真啊,然后我们再看一下这个七宝亭启动 啊,这个 m 二点二是不是变成 on 了处啊?然后呢,关掉,启动,他还是 m 二点二,还是在 昂的位置?然后呢,我们停止啊,停止,他就 m 二点二就 false 了啊, false 了,停止。所以呢,我们通过把这个输出变量啊放到音 alt 中啊,放到音 alt 中, 就可以用 fc 块实现起跑停。那他实现的什么?为什么能实现呢?因为这个输出啊,现在是音 out, 他既可以当输入变量,又可以当输出变量,就说他可读可写,当每个扫描周期开始的时候,他是 呃读取外部音 alt 状态的状态,变亮的状态。然后呢,呃进行程序,执行程序,执行程序完毕,再把这个输出结果呢,执行给这个音 alt 的变亮。所以呢,我们可以理解成什么呢?程序开始它是读的 啊,读的程序开始是读的,读输出状态,读输出状态,他是多少等于一还是等于零啊?程序开始发现他等于一了,那么我成这里呢,就会变成一, 启动是零, note 停止是一,所以呢,它的结果就是一,那么就会保持输出状态 啊,如果程序开始呢,他读的是零啊,那全是零,那自然他就是零了啊。所以呢,如果想用 f c 块实现这个 习宝婷的效果呢,要把这个输出点呢放到音 out 这个变量中,而不是 out 变量,那因,因为他没有背景数据,不会保存他的内部变量状态啊,所以呢,他必须要读取外 部的变量状态才能让他进行保持啊,这就是 f c 块、 fb 块的一个区别。如果用 fb 块,因为他有背景数据,每个回合呢,这个输出啊, 都会保存起来啊,保存起来到下一个扫描周期的时候,我还是上一个上一个扫描周期的状态,所以呢,他就会 能实现保持的功能,而 f c 块实现不了保持的功能,它依靠的是外部变量进行保持啊,这就是它俩的一个小的区别啊。通过这个案例,我们理解了 in alt 这个变量 到底怎么用啊?怎么用,大家可以自己试一下。如果你像 f b 块这样写,他肯定是不可达不到起跑亭的目的了, 那如果把这个输出放到音 alt 位置,那它就可以达到七宝亭的目的啊,这样我们就实现了我们要的啊。

各位同学大家好,今天呢我详细给大家讲一下 fb 里面 input, output 还有这个音 out 的区别啊,今天呢我就给大家详细分析一下啊。首先我讲一下相同的点啊,这三个变量, input out 还是这个音 out 啊,这个变量你新建以后, 他都会在我们的 db 里面来给我们创建相应的变量,这个呢就是说他单独在我们的啊背景数据块里面开辟了一个储存空间啊,他的数据是可以保持的,和我们那个 m 点还是有同等的功能的。好的啊,第二点相同的地方呢,就是在我们这个 f b 调用的时候,在不填管角的情况下,就是这三个输入输出管角我们都不填的情况下,而他们的作用是一样的啊,不管是 text intext in alt 还是 text alt 啊,你都可以对他进行读写操作,就说你能读能写,我们先来 看一下读,我们直接在 db 块里面强制一下,第一个,第二个,第三个,哎,读操作 ok, 然后我们再试一下写操作,我们把这个程序啊改改 好了,改好了程序呢,就是这样子,我们把太阳谱放前面,我们试一下我们能不能对这三个变样进行读写操作。首先我们强制太阳谱一 二三,大家看一下这三个点是不是都输出了,对吧?所以说我们在没有填这个管角的情况下, 哎,他们的功能也都是一样的,可以进行读,也可以进行写操作,其实你把你就把它看作一个全局变量就好了,你程序的这个任意一个地方都可以对他进行操作,但是这种操作方式是错误的,我们用 fb 的时候啊,千万 不要用外部变量来操作他内部的局部变量,这样的话会造成呃你的一个逻辑混乱,大家一定要注意。然后呢,我们后面再来看一下啊他的不同点。首先我们把这个管角填一下,我们需要定义他的输入输出,还有他的这个音奥特。 好的,现在我们这个管角已经填好了,我们一共加了三个变量,分别是 m 十点零,十, m 十点一、 m 十点二,我们先把窗户关掉,我们进去 fb 里面好了,这个时候他们的功能就不一样了。 首先 input 是只能读取的,是不能写入的, output 是只能写入不能读取的。而第三个因奥特呢,是可读可写,但是呢,他们的可读 可写,还有读写操作是对外面的变量而言,就是对我们这个十点零、十点一、十点二而言,并不是对他们自身的变量,他们自身变量是可读可写的。如 如果说我们把这个管角填上以后,我们音库特就只能读,他是不能写的,写入以后他也不会改变这个十点零这个值 o 的不得呢,是只允许写不允许读,你读的话,你是读不到十点二的这个状态的,你只能读到我们这个 text out 的值,你是读不到十点二的状态的。 所以说大家一定要搞清楚我们这里面的读写操作是对谁而言, fb 里面我们这个 input、 output 和因奥特这个读写操作都是都是对于外部变量而言,对于他自身而言没有任何区别。然后呢,我们这个因奥特呢,他是可读可写的, 意思是说如果说你的 fb 内部操作了这个 in out 这个值,我们看一下操作了这个 ts 应 out 这个值,外部的这个十点一也会跟着变。后面呢?我们用哎一段程序 来来测试一下,看一下他到底是不是这样子的。我们先把这个程序改一下,我们先测试音库头的部分。好,我们试一下他这个读取部分,我们强制一下外部这个点位 啊,数据已经被读取进来了,对吧?我们外部是处,他内部也变成处,然后我们试一下写入,大家看到没有?我们把程序反过来写以后啊,他这里已经警告了, 他告诉我们这个 test 的应是一个输入变量,哎,不建议对他进行访问,但是我们还是可以尝试一下,这样做的话也可以下载到 plc, 并不会爆语法错误。好,我们测试一下,看一下我们,呃,强制内部的点会不会导致我们外部的点会改变。 好,我们强制一下我们的 tme 一。好,这个 text 的印已经为一了,对吧? text 的印已经为一 一了,但是我们看一下我们这个十点零是没有任何动作了,所以说我们赢 pot 是只能读不能写的。好了,我们再来测试一下 oppo 的把程序改成这个样子,我们测试一下 oppo 的能不能读取。好了,我们程序改到这样子,我们再试一下 oppo。 首先我们强制一下外部点位 啊,这里我加了一条程序,这个额外的出十点二强制以后他一直为一,对吧。然后的话,我们看一下他这里还是为 force 的,为什么呢?因为我们这个 db 块,他这个 odopod 是只能输出的,他在一直输出给我们这个 odopod, 所以说呢, 你上面把它织为一以后,下面过来马上就为零了,所以说我们这个 output 是读不了外部的数据的。第三个,我们再来看一下这个音奥特,音奥特的话,它是具有奥特 pot 和音 pot 的功能。好了, 情绪已经改好了,我们先看一下读取。首先我们强制一下这个 m 十点一好了,已经顺利读到 m 十点一的数据了,十点一为处的时候,他内部也是被接通了。好了,这个读功能是 ok 了,然后我们看一下写,首先我们强制一下这个 tm 一, 我们看一下好 tompe 强制以后, test 的 inch 这个 inch 这个字变为一,我们外部这个点也变了,对吧? 然后如果说我们这样子呢,把它改为零就改为零,而现在是改不了的,你看到没有,因为我们程序里面这个 temp 一直为一,他会一直输出一给他,所以说我 我们外部的这个十点一也不会被置为一,那如果说我们把这个 temper 置为名 好的,我们十点一也变成零了,所以说我们这个 in out 变量,而是可读可写的,这个可读可写是对于外部变量而言,也就是说他的状态改变会引起我们外部状态的改变。最后我们来总结一下 input output 和 test in out 的区别。 input 只能读 奥特, pot 只能写,因奥特的话可读可写,但是他的读写和可读可写都是对于外部变量而言,对于他自身而言, 所有的这三个槟榔都是可读可写的。好的,感谢大家的观看。