粉丝223获赞385

好,二十分钟组太王视频编号, z 幺五今天讲一下事件报警记录,事件报警记录就在我们前面做过的化工车间的基础上做, 主要讲几个内容,就是一个是报警组,怎么定义的啊?另外我们这个报警窗口呢,我们是用工具箱上提供的报警窗口 啊,在工具箱上找报警窗口来做,另外报警值的,或者叫报警界限的含义设置。 另外我们的报警窗口呢?它是弹出式的画面啊,弹出式画面怎么做好?我们现在讲实践报警记录,这个实践报警 啊,就是在我们自动化控制系统里面非常重要啊,就是个事件啊,就是你的事件有分好多种啊,比如说数据的改变啊,你的操作啊,你对这个软件的操作啊,啊,还有一些 超限报警啊,你比如温度过高啊,压力过高啊,液位过高过低啊,这些报警啊,这些都都是成为事件啊。呃,那么事件,嗯报警呢,就是实际上,在实际当中呢是比较重要的啊,那么我们慢慢就要接触到数据库的,这里有个数据库的概念了,那么这些呢?报警记录啊,呃, 你看年月日十分秒毫秒啊,这个是什么报警?原来有夜位低了还是高了啊?这个报警他都会记下来的啊,那这个那么我们下面就来讲这个事件报警记录呢,是怎么来做的啊? 那是做好了,一个一个这个,呃,化工车间的这个我们前面做过的这个,呃,画面啊,我们来运行一下, 这现在报警还没有做上去啊,我们一步一步把这个报警做上去,你先看运行一下啊,那这个原谅夜位啊, 是两百毫秒啊,每加的啊,往上加加一啊,加一,那就是 i n c 啊,加一这也是加一,这只不过是加的慢一点。催化剂这是四百毫秒一次,那么成品油液位呢?就等于它俩的液位之和啊,之和是成品油液位啊,再退出, 这是我们做上去,我们上来做了一会,做了三个变量啊,跟这个罐子连起来,原料有液位原料有液位啊,这是一个 i o 整形的啊,我们要先定义一个仿真 p l c, 这个我们都会了,原料有液位啊,仿真 p l c i o 整形聚化剂液位 i o 整形的 是吧?嗯,点开看看啊,点开,你看这个是原催化剂结尾,这是一百啊这是一百,嗯,数据词编,你看一下啊, 原料液位啊,这是加一 i n c 啊, i e a, 加一啊,加一呢这是,呃,最小值是零,最大值是一百,两百毫秒加一次,两百毫秒加一次啊,那么催化剂呢?这是四百毫秒加一次啊,那么就两个就看出高度差了,一个比一个,一个的页面长得比另外一个慢,对吧?我们看成品有液位啊,成品有 是到两百啊,我们这做了这个命令语言啊,就是成品油液位 啊,成品油液位啊,等于原料油液位啊,加上这个催化剂液位啊,这是两百吧确认,那么下面呢,我们就来做这个事件啊,事件报警啊, 报警到后面吧,那么我们在这个工具箱上面呢,我们找有这个报警窗口这个小铃铛啊报警窗口小铃铛啊,点这个小铃铛啊, 那我们先先设置好啊, 那么删除啊,我们先辨证词典 监控一下啊。呃,变量词典,一个原料液位啊,双击,那么这是对他的变量名,原料液位, io 整形啊,那是仿真 prc 啊,这都定义好了啊,然后我们这个报警定义啊,报警定义, 那么首先呢,我们要做一个报警组啊,次序啊,再来一下啊,重新来啊,首先要第一步,第一步先弄报警组,报警组, 报警组呢,一上来点呢,它是 rot, rot 就是跟 not 啊,跟节点,我们可以呃,在它上面增加啊,增加增加,比如说我们是,呃,增加一个,随便啊,原料有 啊,原料油报警啊,原料油报警,可以有点像我们前面做那个菜单,对吧?然后呢,还可以在上面再增加啊,催化剂啊,报警 啊,那么当然你还可以在下在他这个呃,做下一集的菜单,你就再增加一个啊,再加成品油, 双笔油,确定,那就做着它的下一集了,对吧?这一代项目菜单,这个也可以改名字啊,点中它,然后点修改啊,修改,比如说我们这个叫化工车间, 那就盖好了啊,这就是我们做了一个报警组啊,报警组啊,就在我们的目录数这个地方,报警组之间啊,现在报警组就做好了,那么我们选择哪一个变量报警啊啊?比如说是原料的列位 给他做报警,做个报警定义,对吧?啊?以前我们只用了基本属性啊,这次我们用的报警定义。报警定义呢,首先你要选是哪个报警组啊?比如说我们给他归的原料油这个报警组报警啊,原料报警组, 另外这是他的,他的报警界限啊,这有界限界限值,报警啊,这有变化率,就是那个 derta 啊就是你有一个突变 啊这种还有偏差报警偏差了多少对吧我们这次做这个界限值报警啊你比如说是呃低低就是比零还低了他就报警低呢就比十低呢他是啊低低线报警比九十高呢他是高线报警比一百还高呢就高高报警我们把它稍微改一下因为九十我们就要高高 啊八十呢叫高二十呢叫低限报警十呢啊低低报警啊因为我们那个呃仿真 prc 是零到一百啊是这样我们就都能看出来了啊然后呢记录 啊记录和安全区这个地方点记录啊每次采集记录啊确定 然后再回到这个呃 你再做个菜单啊再做个菜单新画面啊呃就是叫原料油 啊啊报警这个画面啊画面。然后我们现在呢点这个工具箱上这个小铃铛啊这是报警窗口啊报警窗口我们来做个报警啊一拖啊拖出来一个报警报警窗是吧啊然后双击报警 啊。呃这个都可以勾选啊这显示标题栏就是你什么报警显示状态栏都勾上你的日期的格式啊。呃外外外年月日对吧你的时间格式十分秒毫秒还没到毫秒。 呃那么报警是在前面出来还是在后面出来啊就是往下挤还是往后挤往上挤的问题啊。他是一个一个往下一行一行往下蹦嘛就减最前吧都行啊列属性这是他的报警的。呃你选择的列有些我们不用扩 等于我们没选吧啊选出把它选中点这个选出把它不要它了啊报警服务器我们也没有不要。嗯电量描述没有啊,操作员没有啊。域名这都不要了啊。用星级我们就剪,主要的把这些名不要了。呃质量除二不要了啊这些呃实践日期 啊,然后。嗯操作属性啊,显示工作条啊,这个勾上啊,安全区啊,这是有有权限的,如果你没有权限的话这个报警记录你只能你是值班人员你可能没有。有的没有权限改这个报警啊,取消那个报警。所以。呃他只能看啊,但是报警都会出来的都能看,只能看 这个权限可以设置啊,我们到现在为止还没设置过权限啊。呃条件属性啊,就是这些报警啊这些报警对吧啊然后每种的颜色啊每种报警的颜色对吧啊就是 哪种报警他的颜色对应的这种颜色啊。确定啊报警窗啊报警窗,窗口为生,这取随便取 原料油啊。我们这点选的是实时报警窗跟历史报警窗是单选的啊。这只能选一个。我们先选实时报警窗啊。确定啊,那我们全部存。嗯运行 我们看下这个画面啊。没有报警 啊,等一下就会有报警支出来啊。实时报警有报警他就会啊蹦出来我们先退出去,我们做一 个啊,这就高高报警了。做一个原料的液位监视啊,做一个文本 有因为啊冒号啊,字体加粗啊,颜色也可以改,改成黑色的, 黄色的。原料由液位啊,然后放文本先进井号井号跟他关联起来关联起来模拟值输出啊跟原料由液位,原料由液位啊关掉起来啊。 确定保存全部存。切换的 view 切换的 view 啊,我们来看它运行状态,我们要看那个画面,我们去做画面 切换啊,你看现在在涨啊,在这个线我们是不报警,我们是呃,二十到八十之间是不报警的啊,这因为在涨啊,到了八十应该报警了啊。八十是一个高线啊,九十就高高啊,再到九十啊,高高啊高高,报警啊报警内心高高 啊,这个地方可以选啊。这个你看别报警了啊,这一勾掉啊,出来了,一勾一勾就确认就把他报警消掉了。但是有的时候我们在实际的系统有的人没有权限消的,你不能随便就消掉了啊,必须有,因为已经报警了就说明设备有问题了,对吧。勾掉啊,哎勾掉就是确认 啊,就是做个确认啊,等下我们可以去。嗯,可以看就确认,就变了个蓝蓝颜色啊,就是你这个你知道这回事了你就确认了,对吧啊这是呃这个报警的这个窗口我们先退出, 我们还记得我们前面讲过报警吧,我们做了一个那个声光报警啊,就是报警,他的声音是有声音出来的啊,你你可以,你当然可以做声音了是吧。啊把这个画面给他改小啊 啊画面给他吐血,我们做一个弹出式的啊弹出式的这个啊报警窗口对吧,一般报警时呢主动弹出来的啊。 apple 紧张口号 我们做小一点啊 啊我们看这上面啊,这是确认啊,这个是确认啊,这个是取消啊,怎么样 运行出来看啊这是这个界面,我们在做一个啊命令数据改变啊,那么数据改变呢?比如说就是我们的这个报警啊,每一个报警不管是哪一类的报警,什么东西报警,在这个系统 里面他会有报警记录的啊,就是到了新报警就系统会有个新报警出来的,我们通过他来监视是不是报警啊,那么就是变量或者预啊,这是数据改变命令啊,上节课讲的啊。 if 啊,切换到英文状态 if 啊,我们这个如果有了报警他是一他是一啊,这是这个系统报警这是一。 呃,但是系统报警不会自动消掉啊,就是你报警没有了,他开车报警直接人为的清掉,如果他啊这个报警来了,我们就让他切换一个画面啊,切换一个画面, shopping 这啊 shopping 这我们让他切换到 画面,我们开始在原料油这个地方我们让他切换到这个报警啊。呃 啊,干了这点事情是吧?那么同时呢啊我们做完以后要人工清除啊人工清除 有的标志是要人工清除的,你们还记得单面机那个第二个实验那个中断标志呢?要清掉的人工人工清就是在程序里面清掉啊,把它清掉啊,变成零,就是有报警的时候到了系统这个新报警,他会是幺啊。呃你把取消了就没零时候就没有报警,把它人工的,把它人为了把它取消啊, 啊就人工他不会自动复位的啊人工复位啊人工复位,对吧?啊?就像 你这个手机定了闹铃,闹铃一响你一按是人工一按它就不响了,对吧啊嗯就人工复位了啊,就是实际上在程序里面我们就是啊,确定 我们看看啊,运行一下,看好把这个退出做上去。退出弹起时啊, e x i t 零 全库存切换的 view。 那这报警来了,主动弹出来了啊主动弹出来一个一个这个菜单啊, 我们也可以暂停滚动啊,暂停滚动也可以可以把停下来啊。啊,确定, 选中它确认,那么看这个报警有什么问题呢?它是这个叫实时报警啊,就报警来了以后弹弹出来啊,报警去掉以后它就消失了啊,那我们就看不到呃这个报警的记录了啊,那么我们把它改一下啊,退出改一下啊, 看一下啊,在在这个工程浏览器报警啊。呃 我们这个地方可以让他有了报警以后呢,可以让他寄到数据库里面啊,报警事件寄到数据库啊,还有操作事件,都是事件啊,登录事件啊,工作站事件全寄到数据库里面去啊,然后这个,呃数据员就寄到哪里面去呢啊?寄到这个,你看 debase 啊, excel 啊, access 对吧。呃 cxo 啊,这些数据库我不知道你们 access 装上去了没,我们默认数据员呢是 access 啊,确定啊, 另外也可以打印,我们没有打印机就不要打印,把它都勾上对吧。啊,那么你看记录文件配置记录,报警到把你的报警事件记到文件里面去啊,操作时都记到文件里面去啊,确定啊,这是记在你的工程目录下这是你的工程目录啊,默认是你的工程目录。确定啊, 我们好像不是这个报警组啊,我们是这个原料油报警确定啊,报警组是这个啊,确定啊,再看看数据词典,原料油液位啊啊 and before not thank you 啊,这是报警的定义啊,报警定义啊,基本属性, 看这个画面原列有报警, 你看这个地方啊,就是我们刚才是实时报警窗啊,那么他只是有报警时候弹出来啊,没报警就就就消失了,所以我们想看以往的报警情况呢,我们要选这个历史报警窗,那么就每一条报警记录他都会 在上面的啊,这是我们希望有的,对吧?就比如说你手机,你现在没看见来了几条短信,他他身上都是记在上面的,对吧?啊?这啊,历史 全部存,我们现在以刚才选的同时已经寄到文件里面了啊,等下我们来看一下文件啊,来了,这个报警,来了他就在上面了,对吧?就在上面选中一条停止滚动 啊,暂停滚动啊,确认,你看确认就把它消掉了,就变蓝变颜色了,对吧?啊?这个选中确认啊选中它确认啊,都消掉它 啊选中这个确认啊。啊这个就是历史报警,他的他的报警记录呢?这个上面都有啊这都有啊,这是对勾,就是确认啊,当然有的时候你没有权限,你不能随便把它消掉的, 对吧?啊?呃,滚动啊,停止滚动啊,这个是更改报警类型,我们可以改报警的类型啊,这就是我们哪些东西报警,低低低报警,低线报警,高线报警,高高不要报警啊,什么偏差?这些我们都可以不要,这些我们又没选,对吧?啊?变味这些都没有, 就是这些报警,低低,你看低低低更低啊,高高高啊,这是优先级,这是报警组名,这是站点,我们现在基本上你没联网的话,不是网络工程的话,只有一个站点,对吧?就是本站点啊,这是 主动弹出来这个这个菜单,对吧?确定啊?就退出,我们看一下他的那个文件记录在哪个地方啊? 我们的这个,所以每回你进去的时候,你,你要知道你的文件存在哪啊,别到时候一天到晚老一天老找文件,我的文件就存在这个 king temper 里面啊,这个大文成都在这里面啊, in temper, 我们看是这个事件报警记录啊,事件报警记录, 你看有一个啊,二零二零零三二六零八的编号, al 二, al 二,这就是他的自动生成的报警啊。啊?这个,这个,他的这个报警记录, al 二,主台王,他的格式 al 二报警,但是这个呢?也没有格子啊,这是 tst, 相当于用记事本打开的啊, tst 格式的啊,呃,我们看起来不习惯啊,那刚才还记得吧?我们还自动生成了一个,呃, 一个,这个默认数据员就是一个 asset 数据库啊,叫 elem m d b。 啊,这是 asset 数据库啊,你看 asset 数据库 alan, 对吧?这就是你看这表格的形式,我们是习惯,对吧?啊?这种我们是习惯的,这些地方没有,没有,是因为我们那个地方没勾,有些地方没勾啊,就是要显示哪些东西,哪些东西要记录啊,你没有勾选他,说明这地方是空的啊,这地方对应的字段是空的,对吧?这就是我们已经把这个数据就弄到数据库里面来了,对吧?啊?

好,大家好,上节课呢,咱们讲了一下咱们昆仑通泰触摸屏组态软件当中一个 gif 构建,是如何组态的,使咱们的画面更加完善。那这节课呢,咱们主要讲一下 咱们昆仑通泰组态软件当中有一个弹窗报警是如何实现的?你比如说我,现在我的风扇一啊,有一个保护动作 啊,这个保护动作也可以是咱们的热计啊,电机的热日记保护原件啊,一个常闭点或者常开点啊,咱们如何使它啊,作为弹窗报警出来呢? 你比如说我,现在我用的是线位啊,作为它的一个保护动作啊,我保护动作了,它会有相应的显示指示灯,那如果我切到风扇二,我在保护动作, 他就不显示出来了,那怎么办呢?咱们就要设计一个弹窗报警,让他在每一个画面啊,如果保护动作他都会弹出来,是吧?这节课我们就开始讲这个。好,首先呢咱们要新建一个画面啊, 新建一个弹窗画面,咱们新建窗口,新建窗口咱们给他重新命名一下啊,叫什么呢?风扇衣,保护动作弹窗, 风扇一保护动作弹窗。 好吧,风扇一保护动作弹窗啊,然后选择这个子窗口属性作为子窗口使用,我们要打上钩啊,窗口模式呢,它是一个模态式窗口,还有一个非模态窗口, 还有个菜单式窗口,咱们选择模态式窗口,下面有解释,比如说打开后无法操作子窗口下的主窗口的构建,就是我弹窗弹出来之后, 我主画面的那个按钮啊啥的都按下,无反应啊。如果你选择的非模态窗口呢?那弹窗报报警出来之后呢?主窗口的勾键按钮啊,也可以点,所以说呢,就看你需要啊,我选的是模态式窗口,因为什么呢? 这个保护动作了之后,你必须要去检查,把它消除掉,是吧?热剂啊什么的保护动作了,你必须要把它复位检查啊,没有问题了你才能实现其他按钮操作, 是吧?这是我们的这个逻辑,那咱们就选择模态式窗口啊,打开是显示边框啊,咱们也可以打上勾,你也可以不用打啊,下面呢位置有一个相对位置和绝对位置,相对位置呢?就这个弹窗 弹出来之后,他大概在哪位置?左上角,右上角,左下角,右下角或者正中间啊,这是相对位置。绝对位置呢,你就是说你输入 x 轴 y 轴那个数字,你就可以具体定位到哪个位置,是吧?那咱们就选择相对位置,让他在屏幕的正中间弹出来, 再往下呢就是大小窗口宽度和窗口高度啊,咱们根据自己需要看他需要大画面还是小画面啊? 但是你不,你不一定是非要是整画面,咱这个触摸屏的分辨率他就是八百乘四百八的,所以说呢,咱们就减去一半,让他弹出来一半,呃呃,小小于屏幕一半吧,算是是吧,那咱们就四百乘以二百四,好吧,好,咱们确定。 好,那咱们开始走开这个双击这个报警弹窗画面,那咱们开始编辑一个什么呢?用到咱们这个标签 提示人的吧,弹出来提示人了,那咱们写什么呢啊?写一个,比如说风扇一报警,风扇一保护动作,请检查是吧?必须要提示人去检查吗?是吧? 风扇一保护动作, 嗯,给感叹号, 请检查。好吧,咱们就写这个字,风扇一保护动作请检查。填充颜色呢,咱就不要了,边线颜色也不要了,刺肤颜色呢,咱们给个红色显眼的啊,字体大小咱调大一点, 然后好扩展属性好行,确定。风扇一保护动作请检查,弹出来的画面就显示这个,但是弹出来之后呢,你不能让他一直弹着啊,咱必须要加一个按钮 啊,让这个画面再关掉,是吧?手动关掉,那咱们就新建一个按钮,找到水晶风格按钮咱们随便选一个,确定找到之后咱们拖到下面啊,咱们给它命名什么呢?确定是吧?确定 啊,文博颜色咱们给个绿色吧,字体大小咱们给个四号。 好确定啊,但你这个昨天完了,你还少一步,少一步。操作属性操作属性关联什么呢?就说关闭用户窗口。关闭, 关闭谁呢?就说咱们这个弹窗,风扇一保护弹窗,咱们确定完了之后,这个画面就要这个弹窗就要关掉,所以说咱们就选择关闭用户窗口,风扇一保护动的弹窗关掉它。好确定 好,这就算是一个弹窗画面,我们已经制作完了,那下来呢,咱们就要光有弹窗制作了,但你怎么才能使它弹出来?是有个条件的啊? 所以说呢,咱们就需要用到咱们这个运行策略啊,让他有一个条件来触发他这个弹窗动作。什么触发他呢?就是咱们风扇一的保护动作啊,保护动作这个点位如果通了,那他就弹窗弹出来,所以说咱们在运行策略里头要新建一个策略。 新建一个什么策略呢?咱们就新建一个事件策略啊,事件策略呢,就是咱们这个保护动作了啊,这个事件动作了,他才能实行执行这个策略。好吧,确定 策略呢,也可以给他命名啊,策略名称呢啊?风扇一保护动作弹窗好风扇一保护动作,弹窗好。数据对象啊, 下面就要需要关联一个变量数据对象,那谁啊?啊?谁哪个点位啊?实现它这个弹窗弹出来呢?那咱们就关联一个变量啊,保护线位一,就是咱风扇一后面的它的线位保护。好吧,确定 下面执行条件,正跳变时执行一次,还有负跳变时执行一次啊,这有很多啊,其实就是从一到零,从零到一的区别啊,咱们就选择正跳变执行一次啊, 当确,当确定的条件满足时,运行好,确定。那这个设置完了呢,咱们还需要进去给它新建 一个策略。双击进去之后咱们要新建策略。行,这个咱们不用管他啊,这是出发条件,咱就不用管他,让他一直出发啊,需要写到一个脚本程序。什么脚本程序呢?就是他的启动条件 啊,这个弹窗啊,弹出来,这条件满足了,我这个弹窗要弹出来啊,找到咱们的用户窗口。风扇易保护动作弹窗啊,有一个方法,下面有一个 open, 打开窗口。意思 啊,那咱们双击他,你说咱们这个啊,保护动作一啊,这个点位如果通了,那他就弹窗弹出来 open 是 吧?好,检查一下,搅拌正确啊,确定保存 好。那这样呢,咱们这个风扇衣的保护弹窗算是制作完了,那咱们下载到触摸屏里头看一下啊,看它能不能实现咱们保护动作的时候,弹窗能不能弹出来。 好,咱们进入运行环境,进入操作画面啊,风扇衣 咱们启动好,启动,那咱们动作一下线位啊,试一下,比如说咱们模拟一下保护动作,好,保护动作,哎,弹出来了,风扇一保护动作请检查好,咱们确定, 那咱们就需要相关人员去检查一下设备是否正常,是吧?那咱们就需要相关人员去检查一下。好,咱们保护动作一下。 好,也能实现风扇一保护动作。就是说呢,咱们这个弹窗呢,不论你在哪个画面里头,他都可以弹出来以提示咱们啊。运行维护人员先去检查是吧? 好,确定。风扇三,咱们弹窗一下也可以进入到主画面,咱们弹窗一下保护动作啊,是吧?都可以, 那如果你想要风扇一,风扇二好多画面都要制作呢,那你就相应的一个一个去做相应的弹窗画面。 好吧,那这节课呢,我们就讲到这,咱们的弹窗报警是如何实现的?好,这节课我们就讲到这啊。

哈喽,朋友们大家好,我们这期视频教一下大家怎么组态报警画面。首先我们新建一个新项目,选择我们十七用的触摸屏型号, 然后在那个画面里面双击模板,在模板里面的话,右边的那个增强对象里面拖入报警窗口以及那个报警指示器,这两个的话只有报警出来的时候他们会弹出来, 然后紧接着我们利用画面一作为一个报警仕途的画面,是在画面一里面拖入报警仕途的画面, 紧接着我们双击变量新建一个内部变量,因为我们这边报警没有连接 poc, 我们拿内部变量来演示,跟他 来看一下整肃型的。我们再回到画面一,然后在那个报警管理里面先新建一个模拟量报警,双建那个第一层表格文本,然后这边就出现了一个车物, 可以选择错误报警或者警告报警,然后给他触发变量,可以选择刚刚我们新建的那个内部变量,然后模拟量可以设置当超过一定值时,超过一十八时触发报警,报警显示的文本我们可以随便选一个,可以选一个压力太大报警, 然后类别的话,刚刚我们选的是错误类别,然后把它分到确认组一,我们再可以看一下他手心里面的触发,刚刚我们也写了他是链接的变量一,然后呢超过一十八十触发报警,然后这个过程的话可以勾选那个报告,然后信息文 的话就是告诉呃操作员这个报警该怎么处理,那么我们这边就随便学一个,学一个那个请检查一下的计算器。 好,我们再双击一个离散型报警,那么离散型报警他是靠某一个位置出发的,某一个位置一的时候出发这个报警,我们同样的也是链接了那个变量一触发位,选择第二个位置,然后报警,显示滤芯堵塞报警, 然后信息文本,我们也是高速操作员,请更换滤芯,然后那个在常规手续里面,那个组可以给他确认组 时,回到确认主意时这个类别里面,然后我们再回到画面一,点击报警试图,然后手心里面一个显示可以勾选那个信息文本以及确认按钮,还有这个编辑按钮, 三个按钮勾选之后呢,这三个按钮就会出现在我们的画面上, 第一个是信息文本按钮,第二个是编辑按钮,第三个是确认按钮,同样的我们的模板里面的一个报警窗口,他里面的手心里面也可以勾选那个三个按钮。 好,这两个报警建立好之后,我们打开模拟返程器,将那个变量选择我们刚刚建立好的变量, 然后模拟这个方式,我们改成那个增量式的,并且设置它的最小值为零,最大值为二十,因为刚刚我们这个报警是一十八出发,然后你 将他的数据的格式改成二进制,并然后点击开,将我们的画面调出来,然后这个就出现了一个滤芯堵塞报警, 紧接着又出来一个压力太大报警,这个报警器跟报警窗口都弹出来了,我们的报警试图中也显示了两个报警,我们可以点击确认报警,将报警那个确认,也可以点击第一个那个信息文本也可以查看信息文本,这边就提示请更换滤芯。 好了,这期视频就分享到这里,朋友们,这个报警主太,你们学会了吗?


如何做出这种祖泰王蹦战?系统界面一分钟教会你。我们先打开人机大师网,下载好需要的素材,接下来开始我们的上位机祖泰, 祖泰完成,让我们下载到上位机里看下效果。

大家好,嗯,今天我们讲一个实力,呃,有关这个左太王多台设备启动公用弹出窗口的一个实力啊。接下来我们做一下。嗯,首先呢我们先做一个有关这个电机启动的这么一个画面, 嗯,做一个指示灯,嗯,然后呢再做两个按钮, 取名字启动 停止, 那么这就是一个电机的一个启动画面,这个的话我们给他关联一下啊, 这边有做好的一个边量启动, 那么这就是一个我们电机的一个启动的一个 画面,按下启动啊,这个点击启动,那么按下停止,这个点击停止,呃,可是呢,在我们正常的现场的这个实施的一个项目中啊,嗯,一般情况下 这样直接启动的啊比较少,嗯,毕竟你这么一点他就启动了,而且他是一台电机,所以我们 不可能说是不给他做一个什么,做一个保护,什么保护呢?也就说如果说你在这个地方属于一个误操作怎么办?不小心点了启动,那么这个就启动起来了,所以说呢,我们一般情况下在点完这个启动以后,我们会让去弹出一个窗口,那么这个窗口的话是属于确认, 就是你是否确认这个点击启动,这样的话就是防止你一个啊无操作, 那么这种的话就属于什么呢?就属于电机的一个启动的一个弹出窗口,那么我们看一下这个弹出窗口怎么去做一下,那么首先呢,在这个地方去新建一个叫 电机启动成功, 给这个窗口定个位置,就是弹出来放到什么地方, 窗口给他设一个四百,四百 一个,我的窗口稍微放大一点,就是为了让大家能看清楚一点啊。嗯,盘厨师的一个窗口, 把这个窗口的颜色给他改一下, 那么这这个窗口啊,这个窗口就是我们需要弹出来的一个窗口,那么弹出来这个窗口主要干什么呢?就是用来启动电击的。呃,把这个 复制一下, 嗯, 那这个他这个没有挂念过来,也就说我需要在这个弹出窗口里面去做这个电机的启动停止,那么 我们按下的时候让这个启动等于一,然后呢这个我们改个名字,改名字叫什么呢?叫取消, 取消。比如说,呃,我弹出来这个窗口,我不一定非要说是去启动那个电机,有可能 我弹出来以后属于我屋操作,我可以把这窗口再关掉,那么我就取消了。 那么这个启动我们把它点完以后的话,我们需要什么?我们需要窗口在 关掉,那么你不能说这个启动点完以后,这个窗口一直在那显示,所以说呢,我们就是按一下时候,我们让这个电机去启动,那么弹起来的时候我们需要把这个窗口给它关闭,关闭的话有一个 克罗斯皮克车啊,我们打开窗口的话是收皮克车,然后关闭窗口是这个克罗斯皮克车啊,那么对应的关闭哪个窗口呢?也就说打开,当他这个功能完成以后,我们需要点击启动窗口关掉,那么同时呢也那么一个 意思啊,那么取消也就说是我什么都不干,我什么都不干的话,我直接把这个窗口关掉就可以了,还是把这个窗口直接给他关掉, 那么这样的话就是一个小的弹出窗口啊,可以实现一个这个 电机的启动,那么电机启动从这个地方启动,那么那么这个窗口他需要去把它调涌出来,也就说那么这个窗口在他正常的这个 运行过程中,它是不显示的,那不显示的时候的话,那么它是需要把它调用出来,那么谁来调用?我们需要用这个启动按钮来调用,那么这个启动的话,我们就不能再说是让它启动的音乐了,我们只需要让它给我把这个窗口给我们调音出来就可以了。有一个收皮车这么一个 函数,就是打开窗口的意思啊,那么打开那个窗口呢?我们让他把这个电机的启动窗口给他打开,那么他只起这么一个作用就可以了,我们接下来我们保存一下,然后呢切换到这个运行模式,我们来看一下啊,他的一个效果, 这还没点呢,怎么就开始就出来了啊?这个应该是这个窗口啊, 那么首先我点启动他是不会动的啊,那么点启动,那么他弹出来这么一个窗口,那么这个窗口的话,可以用来做这个点击启动啊,那么同时启动完以后这个窗口消失,启动完, 那么这样的话我们就可以实现一个什么呢?就是呃,防止一个误操作,那么当然呢,停止这块的话,我们也可以 怎么去做?停止我就不做了,停止这个停止的做法跟这个启动的做法是一模一样的,也就说呃,我们需要去建一个停电机的停止窗口,那么 当然那个什么你也可以也可以用这个窗口啊,在这里面把这个停止也可以啊,怎么都行啊? 这可以点取消,也就说我点启动,我可以点取消启动,取消我直接启动启动,这样就启动,那么这是一种情况,那还有一种情况什么呢?比如说我这边的话啊,有两个点击, 我有两个电机,那么有两个电机的话,呃,我这两个电机都需要去启动,当然了我可能还有三个,四个啊,有好几个啊,就以两个为例啊,如果有两个电机,那么这 两个电机可能都要启动,那么都要启动的话,他都要使用这种方式,那么我是不是需要去建两个弹珠窗口呢?这个不需要啊,那么也就说我在这里面的话,呃, 我在这个里面点击的启动操作,那么这里面的这个启动,这个启动,那么问题就来了,就是这个启动点下去以后,他到底是启动这个点击还是启动这个点击,那么这个时候的话,我们可能就需要一个条件啊,什么条件呢?我们先来看一下啊。 首先呢这个启动我们让他去调出来这个电机系统窗口,然后呢这个没有问题,那么这个启动我们也让他去调出来这个电机系统窗口,那么同时呢,我们需要做一件事情,呃,在数据词典里 我们有一个闲置,我看 内存整数啊,这个 id, 我们用一下这个 id 的这个这个这个变量, 哎,怎么挂了呀? 嗯,这那么第一个启动,也就说我在按下的时候,他在弹出来这个窗口的同时,我们需要让他再干一件事情,在干什么事情呢?我们再给他这个 这个 id, 给他复一个纸,然后呢让他等于一 一个等号,那等于一给他复一个值,那么复一个值的话,就是也就是说当我这个 id 就是有一个这个变量 id 等于一的时候,我就认为这个按钮是他按下来的, 那么当 id 等于二的时候,我认为这个按钮就是由他按下来的,也就说我是通过这个 id 里面的这个数值是几,来判断当前这个电机的弹出窗口是由他们两个谁按下来的, 他按下去以后我们给这个 id 给他敷一个啊,那这样的话就可以 通过这个 id 来判断这个按钮是由谁按下来的,那么在这个里面,在这个里面这个启动,那么这个启动的话,就说我按下去以后, 我到底是启动等于一还是启动等于是是哪个启动这个地方再去建一个啊?对应的他应该有一个启动一啊, 启动一我们有一个内存的离散, 那么这个电机啊,这个灯我们就会关联去启动一,他俩各按各的事情啊, 同时呢我们这个, 那么这个按下去以后,你就不能直接点启动等于一了,为什么呢?那么现在他要控制两个点击,左边这个点击和右边这个点击,那么 那么到底是按下去以后是左边点击之一还是右边点击之一,我们要去判断一下 判断呢?也就说,呃,如果我的这个,如果我的这个 id 等于一的时候, 那么这个时候你就说如果这个 id 等于一,我们就认为这个你是想启动左边这个点击,为什么呢?因为你按的是左边这个启动按钮,那么左边这个启动按钮按下去以后调出来这个窗口, 同时呢他给这个 id 负了一页,那么这个时候我们启动的就是左边这个电机,那么反之也就说如果 如果这个 i d 等于二的时候,那么也就说你想启动的是右边这个电器, 那么这样的话,我就可以通过这个按钮按下去以后,他会去判断,那么到底是让这个质疑还是让这个质疑,这样的话就可以了。确定缺少运算符号,两个等号 确定确定,那么停止的做法是一样的,我们就不做了啊,直接这块的话,光把启动一块做就可以了啊,全部保存一下,切换到这个游戏模式, 打开这个有一个自定义的画面,那么我们先点启动, 点完启动以后,那么这个时候他调出来这个窗口,你按下启动,他就这个这个灯会亮,这个灯会亮,那么我们再点停止,那么当我按这个启动的时候,那么他也还是弹出来这么一个窗口,那么但是这个时候你启动的话,是他是有灯亮, 这个灯亮就不是他亮,就是通过这种方式,我用一个弹出窗口,然后来实现这个多个电机,然后共用的一个启动的一个整个界面,那么在这个地方,我们 在这地方,在我们这个弹出窗口里面的话,我们在这地方我们会有一个什么呢?呃, 因为你你这个弹出窗口啊,可以暂确号号,电机 是否启动, 我就弄得不好看了啊,这个只是一个美观的问题啊,那么这个的话我们给他关联一个什么呢?我们给他关联一个这个 id 啊,就是这个 id 这样,那也就说我这个地方点出窗口以后的话,我最起码知道我当前要启动的是几号电机,对吧? 直接保存一下,然后呢切换到这个运行模式里面去 打开这个启动好,一号点击是否启动,也就说我当前按下启动以后,我给这个 id 里面传了个一,那么他就会一号点击是否启动好,启动 启动,然后停止第二个按第二个好,二号点击是否启动 好,不启动要取消启动启动,那么他就启动。 哎,这个停止没有关联吗?哦,这个停止没有关联啊,这个停止没有关联, 这个停止按的是这个啊,这个,那么啊启动这块的话就这样去做,那么如果说你想做这个停止停止这块的话,实际上那个什么他也是需要这样去做的,他也是担心什么呢? 担心这个操作,所以说呢,我们停止这边的话,也是需要实践,也是需要这样去做的,但是呢我就不做了,我就是演示一下启动怎么去做,那么停止这块的话,实际上也可以单独再建一个这个弹窗窗口,然后呢利用我这个方式啊,实现一个停止也是有一个功能的, 那么如果说你这边电机很多和画面上有几十十几台电机,那么我们都可以通过这种方式啊,就是来改变,可以来改变这个什么这个一个内存整数一个值啊,然后来判断你当前是否要启动 电机,这样的话我们就可以利用一台公共窗口啊,就可以实现这么一个功能啊。那好,那么这节我们就讲到这地方啊,谢谢大家观看,再见。

看了这个主菜软件,我都不知道说什么好了,就什么特色都没有,什么特殊的功能都没有,平平无奇。这个价格是的确是非常香啊。 数据库这边驱动七八百个驱动肯定是都有的,所有的这个 p、 l、 c 环保归约,电力归约啊,智能模块这些都是有的。 model 这都有的。 然后建点数据库点就剩三个了,模拟点最常用的肯定是然后,呃,上面这个批量建点的,批量建历史,批量建报警,这些都是有的。时数据库和驱动一共就这些, 然后画面这些基本的图形图、源位图,图库啊,这都是有的常用空间啊,基础的窗口空间是有的,这些按钮、编辑框这些都是有的, 下面就少了好多东西了。三 d 百度,这一次海康卫视全没有了,就剩了报表、报警趋势,嗯,剩下就没啥了。 总结一下这套主态软件,它的优势,那就是价格非常的接地气,然后稳定性特别高,其他的没有任何特点。

新界面 nvr 运动检测联动报警弹窗配置指导,主页面点击事件规则配置,可以绘画检测区域,开启运动检测功能,点击联动方式, 勾选报警弹窗功能,点击保存。在触发运动告警后,人机界面会弹出告警提示窗, n v 二仅弹出当前的告警信息,如果涉及多条未确认的,则显示最新的告警, 可以通过按钮翻页查看,同时还可以快速查看关联的图片,若无则显示占位图或者录像。

你做工业项目还在买主态软件买点位吗?今天给大家分享海维斯高的软件,带你三分钟搞定报警功能。源库中找到高级控件,拖出报警表,我们先双击进入配置。 报警表有两种样式,有标签切换和每一组表格分开四组。报警信息可以选择需要的展示,报警内容也可以根据需要展示。我们常用报警信息时间项目可以通过右侧按钮来上下移动,调整顺序位置 拉至右侧看到显示设置勾选启用可以看到警报,根据不同标签进行显示,我这里先不设置,方便我们观察。报警等级可以根据编号来设置。报警等级下面还可以设置浏览方式,也就是上拉下拉的滚动条如何显示, 我这里设置同时显示,方便演示给大家看。滚动条的大小也可以直接设置。图标的样式是可以通过外观来设置,大家配置时选择搭配画面的颜色即可。不只有表样式可以改变, 表中的文字颜色大小,字体也可以改变,字体选择自带的即可。行内的网格线自行选择是否设置,调整表格至合适位置。下一步点击左侧浏览器里的报警进行新增 设置报警等级,勾选画面推送和远程上报,这样我们可以随时通过手机电脑查看报警,然后选择要监控的变量,比如你要监视开关是否关闭,就从变量列表里找到对应的变量。选上 条件,设置为 off, 报警内容设置为文字恢复内容也同样,点击确认就保存成功了。高级设置里可以配置声音报警,有系统自带的声音库, 也可以自己导入或者最常用的文本转语音恢复,同样 勾选循环播放,间隔设置为合适间隔关闭声音选择恢复和确认后停止。同样的方式,添加一个数值的报警,勾选类型为字绑定,改该变量 触发条件设置小于五或者大于等于二十时进行报警。中间的条件选择 o, 其余与上一个一致。 点击运行,看到正在报警,输入数值,却发现无法关闭报警。这是因为我们的数值显示设置了小数位,而数值类型是整型,那我们把数值显示输入的数值格式更改即可。将小数位减为零, 点击在线模拟进行查看,打开开关报警,关闭 区间外会立即报警,输入区间内的值,报警才关闭,上方历史数据可以进入查看。 今天这期到这里就结束了,你们在使用阻太软件时遇到过什么问题呢?欢迎在评论区里留言交流。

定位报警系统,我们的这个设计主控采用 stm 三二单片机,左下角是我们的 oled 屏幕,大家在视频中看到屏幕有些闪烁,那是因为录制视频的原因,现实中是正常的。 左上角是我们的 gps 模块,通过我们的 gps 模块,我们可以实时的获取我们的设备的经纬度,也就是我们当前设备的一个位置, 这里是我们的一个短信模块,通过我们的短信模块可以给我们的一个手机发送我们的报警短信。我们这种报警短信主要是两种形式,第一种是一键报警,也就是当我们的人发生了危险,再或者感觉到了危险,可以按下这个红色的按键,就可以接收到我们的一个报警短信。 按下红色按键后,这边会给出我们的报警提醒,同时这边会收到我需要帮助的一个提醒, 然后如果要关,然后手机上会不停的给出我们的一个报警弹窗,只有我们关闭到我们的这个报警也是蓝色指示灯,关闭之后这个报警其实才会消失。 右上方是我们的 wifi 模块,通过我们的 wifi 模块可以将我们的整个设备接入我们的一个物联网平台,实现在手机 app 上面来查看这些数据。我们当前的一个纬度和进入我们当前设备位置, 这个设备位置我们可以通过这个网址直接去点,进去之后把纬度精度输进去,就可以看到我们当前的一个具体的位置了, 然后这个中心纬度和中心精度是什么意思呢?也就是说当我们点开这个按键,他就会以我们当前的一个经纬度作为中心点设置在这里,然后我们这边可以设置一个距离域值,比如说设置成一个 五,比如说他们相差,比如说,比如说我们上面的纬度和下面的中心纬度,或者我们的精度和下面的中心精度相差,只要超过了零点零零零五,那么他就会给出我们的一个距离报警, 他就会发短信提醒,同时手机 app 上面这边也会给出我们的一个提醒的,这个这里的距离大概是如果如果设置成零点零零零五,大概就是五十米,然后以此类推, 四乘幺零的话,他的一个范围域值就是以这个中心点,然后画一个圈,然后距离大概是一百米,只要超过了这个中心点一百米,那么他就会给出我们的一个报警, 然后如果说需要重新设置中心点,比如说我们人走开了,换换换了一个位置,需要以新的一个中心点为中心,只需要打开这个开关,然后它就会以新的经纬度为中心进行设置了。

然后咱们把三百软软件打开,输入它这个密码,默认密码是 s u, p, c o, n d 四 s 登录。 然后咱们在这儿首先第一步给它新建 i o, 点第一个,咱们点那个气源压力 i o 卡键当中选择 ai, 然后咱们在这儿点增加气源压力, p t 零幺, p 代表 power pressure, p 代表 transmitter, 零幺就是电源压力, 然后选择它的一个参数,假设它的量程是零到两兆八,然后单位兆八, 然后右下角选择供电模式,供电模式的话代表那个咱们这个变速器是 dc 那 个 ai 卡件通道给它提供电源 二十四伏的一个电源。然后接下来是它的一个状态反馈在 di 当中啊,比如说咱们在这利用那个气动阀一开反馈气动阀一的一个光反馈,作为咱们刚等会儿的那个阀门的一个开光状态的一个反馈, 然后在 du 当中咱们在这选择它的一个指令啊,然后咱们再给它增加一个点 value 控制点 c o n control, 然后这是电磁阀的一个控制指令, 然后它是一个开关量输出参数,然后 on 的 话代表一个得阀门里打得电,打开电磁阀,得电阀门打开, 然后 off 的 话代表十点关闭,然后确定,然后接下来咱们给它那个新建还有一个点整理退出, 然后咱们在这还需要增加一个消音报警按钮,然后比如说默默认选用它的一个那个尾号,然后这是一个消音报警,然后再给还需要增加一个阀门的一个那个复位按钮 啊,根据实际大家可以修改这个位号,然后咱们就默认的位号啊,作为它相应的一些那个位号名字,然后在这儿咱们还需要增加一个,再增加一个,增加一个是那个 气源压力啊,高一报警,咱们用中间点, 中间,中间变量作为它的一个报警信号,然后退出啊 i o 点,包括它的变量建好之后,咱们就可以进入它的一个组态, 首先下一个逻辑组态,咱们在这得编辑,然后咱们在这新建一个程序段,然后选择咱们 d c s 当中最常用的一个功能块图,编成 f b d, 然后这是比如说给它起一个名字,电磁阀控制, 然后断了一起,咱们在这选择程序确定,首先咱们把控制要求给它添加上 控制要求,首先第一个机缘压力 达到高一值,假设高一值的话,它这个是零点八兆帕 高音指示进行报警,按下消音按钮进行复位,这是第一种情况 啊,咱们就用这个 当气源压力超过报警二值时,假设报警二值是一点二兆帕时,然后连锁电磁阀失电,气源阀门关闭,然后当这个气源压力恢复正常之时,按下这个阀门复位按钮,电磁阀得电气源阀门打开, 比如说咱们把这个, 这是它的一个控制要求。 然后接下来咱们就是用咱们的一个算法块实现上面这个功能。首先第一个气源压力超过它的时候,咱们利用比较算法块, 在比较计算当中,咱们选择大于等于 j e s float, 因为咱们三百当中存储存储数值,咱们利用的是磅负点数 s float。 然后首先咱们连这个气源压力尾号, 在 vr 地形当中,咱们这是选择模拟量,咱们这是选择气旋压力,然后确定,然后第二啊超超过零点八兆帕,因为咱们那个气旋压力量乘是二,所以说零点八除以二零点四, 然后确定啊,咱们在实际当中,咱们组台一般利用非科吹报警,所以说咱们在这需要给它增加一个触发期,咱们在这选择复位优先触发期, 同样咱们把使能使能输入给它隐藏掉,比较输出变成布尔量连到它的一个置位桩,复位桩,咱们连这个消音报警按钮 对应的一个位号,同样咱们在那个位号类型当中,咱们在这选择自定义当字节变量,咱们在这选择消音报警按钮,确定它这个输出就是那个高一报警, 这样的话咱们把当气源压力超过那个零点八兆八的时候,它这直接会变成一个高电频,然后按下这个消音报警按钮的时候,它这个那个报警复位。第二种情况啊,当它超过一点二兆八的时候,连锁电磁阀失电, 然后咱们在这选择一个那个附加部特殊模块,咱们在内部选择一个阀门的一个控制模块, 同样咱们把使能使能输出给它隐藏掉,然后确定 s w open, 咱们可以啊,那个作为它的一个连锁打开按钮, state open 代表阀门的一个开放费,然后咱们给它光连上。 在尾号类型当中,咱们在这选择开入量,然后咱们在这选择罚一的一个开放会,然后确定,然后 sw close, 代表啊,咱们可以使用它作为一个那个连锁关闭,当它超过一点二兆帕的时候,是那个让这个电磁法失电, 咱们把这个来复制超过一点二兆帕,一点二兆帕的话比较那个值,它是那个一点二除以二零点六,然后确定。当它超过一点二兆帕的时候,咱们在这儿给它连到那个 s w close 上, 然后接下来这个引脚是 state close 代表那个关闭状态, 然后接下来是 d s c o n 代表那个 d s c o n 控制方式 powerwise 代表一个脉冲宽度,比如说咱们让它发一个三秒的一个脉冲,因为它是以毫秒为基准,所以说咱们在这儿给它设置三千毫秒 pro time, 假设它这个阀门的一个行程时间是十秒, 利用 protime 啊进行一个开关故障的一个碰撞,一万毫秒十秒。当按下这个复位按钮的时候,咱们让电磁阀打开这个复位按钮,咱们连到这个 s w open 上, 在自定当自检变量当中,咱们在选择阀门复位确定。因为在咱们实际当中控制电磁阀得失电,咱们用的是长信号控制,所以说咱们在而它输出这个算法块输出的是脉冲信号,所以说咱们再输出给它加一个 r c 触发器, 同样咱们把使能使能输出给它隐藏掉, 然后这个连到它的一个置位端,一旦发一个开指令,让它输出啊,变成高电频电磁阀得电阀门打开, 当它输出低电频的时候,连到副位端,让这个变成低电频电磁阀失电,阀门关闭,它这个输出就是咱们的一个电磁阀的一个控制指令 开出量,选择电磁阀控制指令确定啊,这样的话咱们这个逻辑下位机逻辑,咱们就组态好了,接下来咱们根据这个下位机逻辑进行一个上位机流程图的一个组态,然后咱们在这留留点流程图 p, 然后在这点增加, 首先咱们把这个气源压力给它添加上 七元压力的一个动态数据,给它添加上七元压力,然后这块是它的一个动态点, 双击选择尾号,在这尾号里请咱们在这选择某入量, 然后因为咱们呃它的量乘以二,所以说整数位让它显示一位,然后同时显示它的单位, g d 一 位整数,两位小数。 好,接下来咱们增加它的一个按钮, 在这儿利用这个命令按钮,我们在这儿选择普通命令按钮。下一步 第一个的话,它是一个消音报警复位按钮,然后选择 i o 数据尾号类型,咱们在这选择自定义,当字节变量,在这选择消音报警,一旦按下左键的时候,左键按下的时候,咱们让它复制一个 on 的 一个数值, 然后这是一个消音报警按钮,然后确定,然后咱们给它复制一个按钮, 然后按住 shift shift, 然后咱们让它进行一个左对齐,然后第二个的话是阀门的一个那个复位按钮,阀门复位, 然后咱们把这个位号给它修改关联,当它按按下鼠标左键的时候,咱们让这个阀门复位对应的这个位号,呃变成一个高电瓶,然后这是一个阀门复位, 好确定,呃,接下来咱们给它增加这个阀门的一个动态的一个属性,然后咱们再利用内部模仿当中选择一个阀门,比如说选择这个阀方,然后右击导出关闭, 然后右击,咱们在这选择动态特性,比如说选择前景色,咱们利用它的一个常开状态来改变,选择尾号 i o 数据 尾号类型,咱们在这选择开入量,然后当它启动发音开的时候,然后咱们给它增加当它这个数值啊,比如说零到零点五的时候, 那他肯定他就两个状态,一个是零,一个是一,是吧?当他零到零点五的时候,咱们认为他是光光状态,让他显示一个绿颜色 确定再给他增加。当他比如说超过啊一的时候,一点一啊,超过那个零点五,零点六变成一的时候,零点六到,比如说到二的时候啊,咱们就认为啊一就介于他二者之间,咱们让他显示一个红颜色 确定,然后动画有效啊,这样的话,咱们根据它这个状态啊,让它进行一个颜色的一个填充变化,通过颜色变化咱们直观的去显示出啊,显示出它的一个开关的一个状态 啊,当然其还有其他颜色,大家也可以设置啊,这就是咱们那个下微机,它的一个流,上微机的一个流程度主态 啊,大家可以结合实际,然后啊对其进行一个调试仿真,然后再啊根据实际来对此进行一个逻辑的一个优化。