西门子PLC常用底层逻辑块分享_单/双输出电磁阀

文章目录

  • 前言
  • 一、功能概述
  • 二、单输出电磁阀程序编写
    • 1.创建自定义数据类型
    • 2.创建FB功能块“单输出电磁阀”
    • 3.编写程序
  • 三、双输出电磁阀程序编写
    • 1.创建自定义数据类型
    • 2.创建FB功能块“双输出电磁阀”
    • 3.编写程序


前言

本文分享一个自己编写的电磁阀控制逻辑块。


一、功能概述

  1. 手动状态、自动状态、机旁状态、强制状态、检修状态自由切换;
  2. 具有开阀超时、关阀超时报警功能;
  3. 手动状态下,按开阀按钮开阀,按关阀按钮关阀;
  4. 自动状态下,根据程序联锁要求自动开阀关阀;
  5. 强制状态下,跳过允许开阀关阀条件,直接开阀或关阀;
  6. 检修状态下,自动关阀,且按下开阀按钮不允许开阀。

二、单输出电磁阀程序编写

1.创建自定义数据类型

在这里插入图片描述

2.创建FB功能块“单输出电磁阀”

建立如下引脚变量:
在这里插入图片描述

3.编写程序

代码如下:
1.赋值

#HMI.Ready_DI := #Ready_DI;
#HMI.Locally_DI := #Locally_DI;
#HMI.Open_DI := #Open_DI;
#HMI.Close_DI := #Close_DI;
#Open_DO := #HMI.Open_DO;

2.时间转换、启动超时判断、故障复位

#HMI.#Fault_ALL := #Fault OR #HMI.#Open_Time_Out OR #HMI.#Close_Time_Out OR #HMI.#Limit_Fault; //故障赋值
#HMI.#Lcl_DO := #Locally_DI AND #HMI.#HMI_Lcl; //有就地信号,且按下机旁允许按钮,才会显示机旁允许状态

#Open_Time := DINT_TO_TIME(REAL_TO_DINT(#HMI.#Open_T_Set * 1000.0)); //输入1表示1S
#Close_Time := DINT_TO_TIME(REAL_TO_DINT(#HMI.#Close_T_Set * 1000.0));

#Open_IEC(IN := #Open_DO AND NOT #HMI.#HMI_Close AND NOT #Open_DI AND NOT #HMI.#Limit_Fault,
          PT := #Open_Time); //开阀延时
#Close_IEC(IN := NOT #Open_DO AND NOT #HMI.#HMI_Open AND NOT #Close_DI AND NOT #HMI.#Limit_Fault,
           PT := #Close_Time); //关阀延时
#Limit_IEC(IN := #Open_DI AND #Close_DI,
           PT := #Limit_Time); //限位超时

IF #Open_IEC.Q THEN
    #HMI.#Open_Time_Out := 1;
    #HMI.#Open_DO := 0;
END_IF; //开阀超时输出
IF #Close_IEC.Q THEN
    #HMI.#Close_Time_Out := 1;
    #HMI.#Open_DO := 0;
END_IF; //关阀超时输出
IF #Limit_IEC.Q THEN
    #HMI.#Limit_Fault := 1;
    #HMI.#Open_DO := 0;
END_IF; //限位故障输出

IF #HMI.#HMI_Rst THEN
    #HMI.#Fault_ALL := 0;
    #HMI.#Limit_Fault := 0; //复位限位故障输出
    #HMI.#Open_Time_Out := 0; //复位开阀超时输出
    #HMI.#Close_Time_Out := 0; //复位关阀超时输出
END_IF;

3.检测信号上升沿

#P_HMI_Lcl(CLK := #HMI.#HMI_Lcl);
#P_HMI_EmgManual(CLK := #HMI.#HMI_EmgManual);
#P_HMI_Pause(CLK := #HMI.#HMI_Pause);

4.手动状态显示

IF #HMI.#HMI_Manual = 1 AND NOT #HMI.#HMI_Auto AND NOT #HMI.#HMI_EmgManual AND NOT #HMI.#HMI_Pause AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Manual_DO := 1;
    #HMI.#Auto_DO := 0;
    #HMI.#EmgManual_DO := 0;
END_IF;
//默认手动状态
IF NOT #HMI.#Auto_DO AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #HMI.#EmgManual_DO THEN
    #HMI.#Manual_DO := 1;
    #HMI.#Auto_DO := 0;
    #HMI.#EmgManual_DO := 0;
END_IF;

5.自动状态显示

IF #HMI.#HMI_Auto = 1 AND NOT #HMI.#HMI_Manual AND NOT #HMI.#HMI_EmgManual AND NOT #HMI.#HMI_Pause AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Manual_DO := 0;
    #HMI.#Auto_DO := 1;
    #HMI.#EmgManual_DO := 0;
END_IF;

6.强制状态显示

IF #HMI.#HMI_EmgManual = 1 AND NOT #HMI.#HMI_Manual AND NOT #HMI.#HMI_Auto AND NOT #HMI.#HMI_Pause AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Manual_DO := 0;
    #HMI.#Auto_DO := 0;
    #HMI.#EmgManual_DO := 1;
    #HMI.#HMI_Pause := 0;
END_IF;
IF #HMI.#HMI_EmgManual = 0 THEN
    #HMI.#EmgManual_DO := 0;
END_IF;

7.休止状态显示

IF #HMI.#HMI_Pause = 1 AND NOT #HMI.#HMI_Manual AND NOT #HMI.#HMI_Auto AND NOT #HMI.#HMI_EmgManual AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Manual_DO := 0;
    #HMI.#Auto_DO := 0;
    #HMI.#EmgManual_DO := 0;
    #HMI.#Pause_DO := 1;
    #HMI.#HMI_EmgManual := 0;
END_IF;
IF #HMI.#HMI_Pause = 0 THEN
    #HMI.#Pause_DO := 0;
END_IF;

8.手动状态下开阀、关阀

IF #Ready_DI AND #HMI.#HMI_Open AND #HMI.#Manual_DO AND NOT #HMI.#HMI_Close AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Open_Time_Out AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #Fault THEN
    #HMI.#Open_DO := 1;
END_IF;
IF #Ready_DI AND #HMI.#HMI_Close AND #HMI.#Manual_DO AND NOT #HMI.#HMI_Open AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Close_Time_Out AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #Fault THEN
    #HMI.#Open_DO := 0;
END_IF;

9.自动状态下开阀、关阀

IF #Ready_DI AND #Auto_Open AND #HMI.#Auto_DO AND NOT #HMI.#HMI_Close AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Open_Time_Out AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #Fault THEN
    #HMI.#Open_DO := 1;
END_IF;
IF #Ready_DI AND #Auto_Close AND #HMI.#Auto_DO AND NOT #HMI.#HMI_Open AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Close_Time_Out AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #Fault THEN
    #HMI.#Open_DO := 0;
END_IF;

10.强制状态下开阀、关阀

IF #HMI.#EmgManual_DO AND #HMI.#HMI_Open AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Open_Time_Out AND NOT #Fault THEN
    #HMI.#Open_DO := 1;
END_IF;
IF #HMI.#EmgManual_DO AND #HMI.#HMI_Close AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Close_Time_Out AND NOT #Fault THEN
    #HMI.#Open_DO := 0;
END_IF;

11.休止状态下关阀

IF #HMI.#Pause_DO AND NOT #HMI.#HMI_Lcl AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Open_DO := 0;
END_IF;

12.按钮互锁

IF #HMI.#HMI_Lcl AND #P_HMI_EmgManual.Q THEN
    #HMI.#HMI_EmgManual := 0;
END_IF;
IF #HMI.#HMI_Lcl AND #P_HMI_Pause.Q THEN
    #HMI.#HMI_Pause := 0;
END_IF;

IF #HMI.#HMI_EmgManual AND #P_HMI_Lcl.Q THEN
    #HMI.#HMI_Lcl := 0;
END_IF;
IF #HMI.#HMI_EmgManual AND #P_HMI_Pause.Q THEN
    #HMI.#HMI_Pause := 0;
END_IF;

IF #HMI.#HMI_Pause AND #P_HMI_Lcl.Q THEN
    #HMI.#HMI_Lcl := 0;
END_IF;
IF #HMI.#HMI_Pause AND #P_HMI_EmgManual.Q THEN
    #HMI.#HMI_EmgManual := 0;
END_IF;

13.按钮自复位

IF NOT "AlwaysFALSE" THEN
    #HMI.#HMI_Open := 0;
    #HMI.#HMI_Close := 0;
    #HMI.#HMI_Manual := 0;
    #HMI.#HMI_Auto := 0;
    #HMI.#HMI_Rst := 0;
END_IF;

三、双输出电磁阀程序编写

1.创建自定义数据类型

同单输出电磁阀。

2.创建FB功能块“双输出电磁阀”

建立如下引脚变量:
在这里插入图片描述

3.编写程序

代码如下:
1.赋值

#HMI.Ready_DI := #Ready_DI;
#HMI.Locally_DI := #Locally_DI;
#HMI.Open_DI := #Open_DI;
#HMI.Close_DI := #Close_DI;
#Open_DO := #HMI.Open_DO;
#Close_DO := #HMI.Close_DO;

2.时间转换、启动超时判断、故障复位

#HMI.#Fault_ALL := #Fault OR #HMI.#Open_Time_Out OR #HMI.#Close_Time_Out OR #HMI.#Limit_Fault; //故障赋值
#HMI.#Lcl_DO := #Locally_DI AND #HMI.#HMI_Lcl; //有就地信号,且按下机旁允许按钮,才会显示机旁允许状态

#Open_Time := DINT_TO_TIME(REAL_TO_DINT(#HMI.#Open_T_Set * 1000.0)); //输入1表示1S
#Close_Time := DINT_TO_TIME(REAL_TO_DINT(#HMI.#Close_T_Set * 1000.0));

#Open_IEC(IN := #HMI.#Open_DO AND NOT #HMI.#HMI_Close AND NOT #HMI.#Open_DI AND NOT #HMI.#Limit_Fault,
          PT := #Open_Time); //开阀延时
#Close_IEC(IN := #HMI.#Close_DO AND NOT #HMI.#HMI_Open AND NOT #HMI.#Close_DI AND NOT #HMI.#Limit_Fault,
           PT := #Close_Time); //关阀延时
#Limit_IEC(IN:=#HMI.#Open_DI AND #HMI.#Close_DI,
           PT:=#Limit_Time); //限位超时

IF #Open_IEC.Q THEN
    #HMI.#Open_Time_Out := 1;
    #HMI.#Open_DO := 0;
END_IF; //开阀超时输出
IF #Close_IEC.Q THEN
    #HMI.#Close_Time_Out := 1;
    #HMI.#Close_DO := 0;
END_IF; //关阀超时输出
IF #Limit_IEC.Q THEN
    #HMI.#Limit_Fault := 1;
    #HMI.#Open_DO := 0;
    #HMI.#Close_DO := 0;
END_IF; //限位故障输出

IF #HMI.#HMI_Rst THEN
    #HMI.#Fault_ALL := 0;
    #HMI.#Limit_Fault := 0; //复位限位故障输出
    #HMI.#Open_Time_Out := 0; //复位开阀超时输出
    #HMI.#Close_Time_Out := 0; //复位关阀超时输出
END_IF;

3.检测信号上升沿

#P_HMI_Lcl(CLK := #HMI.#HMI_Lcl);
#P_HMI_EmgManual(CLK := #HMI.#HMI_EmgManual);
#P_HMI_Pause(CLK := #HMI.#HMI_Pause);

4.手动状态显示

IF #HMI.#HMI_Manual = 1 AND NOT #HMI.#HMI_Auto AND NOT #HMI.#HMI_EmgManual AND NOT #HMI.#HMI_Pause AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Manual_DO := 1;
    #HMI.#Auto_DO := 0;
    #HMI.#EmgManual_DO := 0;
END_IF;
//默认手动状态
IF NOT #HMI.#Auto_DO AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #HMI.#EmgManual_DO THEN
    #HMI.#Manual_DO := 1;
    #HMI.#Auto_DO := 0;
    #HMI.#EmgManual_DO := 0;
END_IF;

5.自动状态显示

IF #HMI.#HMI_Auto = 1 AND NOT #HMI.#HMI_Manual AND NOT #HMI.#HMI_EmgManual AND NOT #HMI.#HMI_Pause AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Manual_DO := 0;
    #HMI.#Auto_DO := 1;
    #HMI.#EmgManual_DO := 0;
END_IF;

6.强制状态显示

IF #HMI.#HMI_EmgManual = 1 AND NOT #HMI.#HMI_Manual AND NOT #HMI.#HMI_Auto AND NOT #HMI.#HMI_Pause AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Manual_DO := 0;
    #HMI.#Auto_DO := 0;
    #HMI.#EmgManual_DO := 1;
    #HMI.#HMI_Pause := 0;
END_IF;
IF #HMI.#HMI_EmgManual = 0 THEN
    #HMI.#EmgManual_DO := 0;
END_IF;

7.休止状态显示

IF #HMI.#HMI_Pause = 1 AND NOT #HMI.#HMI_Manual AND NOT #HMI.#HMI_Auto AND NOT #HMI.#HMI_EmgManual AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Manual_DO := 0;
    #HMI.#Auto_DO := 0;
    #HMI.#EmgManual_DO := 0;
    #HMI.#Pause_DO := 1;
    #HMI.#HMI_EmgManual := 0;
END_IF;
IF #HMI.#HMI_Pause = 0 THEN
    #HMI.#Pause_DO := 0;
END_IF;

8.手动状态下开阀、关阀

IF #Ready_DI AND #HMI.#HMI_Open AND #HMI.#Manual_DO AND NOT #HMI.#HMI_Close AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Open_Time_Out AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #Fault THEN
    #HMI.#Open_DO := 1;
    #HMI.#Close_DO := 0;
END_IF;
IF #Ready_DI AND #HMI.#HMI_Close AND #HMI.#Manual_DO AND NOT #HMI.#HMI_Open AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Close_Time_Out AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #Fault THEN
    #HMI.#Open_DO := 0;
    #HMI.#Close_DO := 1;
END_IF;

9.自动状态下开阀、关阀

IF #Ready_DI AND #Auto_Open AND #HMI.#Auto_DO AND NOT #HMI.#HMI_Close AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Open_Time_Out AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #Fault THEN
    #HMI.#Open_DO := 1;
    #HMI.#Close_DO := 0;
END_IF;
IF #Ready_DI AND #Auto_Close AND #HMI.#Auto_DO AND NOT #HMI.#HMI_Open AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Close_Time_Out AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #Fault THEN
    #HMI.#Open_DO := 0;
    #HMI.#Close_DO := 1;
END_IF;

10.强制状态下开阀、关阀

IF #HMI.#EmgManual_DO AND #HMI.#HMI_Open AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Open_Time_Out AND NOT #Fault THEN
    #HMI.#Open_DO := 1;
    #HMI.#Close_DO := 0;
END_IF;
IF #HMI.#EmgManual_DO AND #HMI.#HMI_Close AND NOT #HMI.#Pause_DO AND NOT #HMI.#Lcl_DO AND NOT #HMI.#Limit_Fault AND NOT #HMI.#Close_Time_Out AND NOT #Fault THEN
    #HMI.#Open_DO := 0;
    #HMI.#Close_DO := 1;
END_IF;

11.休止状态下关阀

IF #HMI.#Pause_DO AND NOT #HMI.#HMI_Lcl AND NOT #HMI.#Lcl_DO THEN
    #HMI.#Open_DO := 0;
    #HMI.#Close_DO := 1;
END_IF;

12.开关到位后,开阀关阀不再输出

IF #HMI.#Open_DI THEN
    #HMI.#Open_DO := 0;
END_IF;
IF #HMI.#Close_DI THEN
    #HMI.#Close_DO := 0;
END_IF;

13.按钮互锁

IF #HMI.#HMI_Lcl AND #P_HMI_EmgManual.Q THEN
    #HMI.#HMI_EmgManual := 0;
END_IF;
IF #HMI.#HMI_Lcl AND #P_HMI_Pause.Q THEN
    #HMI.#HMI_Pause := 0;
END_IF;

IF #HMI.#HMI_EmgManual AND #P_HMI_Lcl.Q THEN
    #HMI.#HMI_Lcl := 0;
END_IF;
IF #HMI.#HMI_EmgManual AND #P_HMI_Pause.Q THEN
    #HMI.#HMI_Pause := 0;
END_IF;

IF #HMI.#HMI_Pause AND #P_HMI_Lcl.Q THEN
    #HMI.#HMI_Lcl := 0;
END_IF;
IF #HMI.#HMI_Pause AND #P_HMI_EmgManual.Q THEN
    #HMI.#HMI_EmgManual := 0;
END_IF;

14.按钮自复位

IF NOT "AlwaysFALSE" THEN
    #HMI.#HMI_Start := 0;
    #HMI.#HMI_Stop := 0;
    #HMI.#HMI_Manual := 0;
    #HMI.#HMI_Auto := 0;
    #HMI.#HMI_Rst := 0;
END_IF;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/458178.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

搭建谷歌Gemini

前言 Gemini是Google AI于2023年发布的大型语言模型,拥有强大的文本生成、理解和转换能力。它基于Transformer模型架构,并使用了大量文本和代码数据进行训练。Gemini可以执行多种任务,包括: 生成文本:可以生成各种类…

COX回归影响因素分析的基本过程与方法

在科学研究中,经常遇到分类的结局,主要是二分类结局(阴性/阳性;生存/死亡),研究者可以通过logistic回归来探讨影响结局的因素,但很多时候logistic回归方法无法使用。如比较两种手段治疗新冠肺炎…

Cookie和Session介绍

1、Cookie的一些重要结论(令牌,类似就诊卡记住我们的信息): (1)Cookie从哪里来:服务器返回给浏览器的,通常是首次访问/登录成功之后(cookie是在header中传输&#xff09…

稀碎从零算法笔记Day17-LeetCode:有效的括号

题型:栈 链接:20. 有效的括号 - 力扣(LeetCode) 来源:LeetCode 题目描述(红字为笔者添加) 给定一个只包括 (,),{,},[,] 的字符串 …

flstudio教程如何设置成中文 flstudio基础教程 flstudio免费

Fl studio编曲软件总共有英文和中文两种语言供用户选择,对于我们来说,更习惯于使用中文版本的flstudio编曲软件,包括我自己也比较习惯于使用中文版本的flstudio,同时也能提高工作效率。Flstudio编曲软件默认语言是英文&#xff0c…

力扣 322 零钱兑换

题目描述 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币的数量是无限的。 示例 1: 输入:coins [1, 2, 5…

VUE基础易错点概述

文章目录 Post/Get请求的区别插槽验证规则的使用ref与$refslable 与 :lable 两个页面间的切换在主页面中,自定义子组件在子页面中 .sync修饰符 本文主要介绍了 Post与Get请求、插槽、验证器的使用、ref与$refs、lable 与 :lable、两个页面的切换以及自定义组件 用于…

圈子社交系统-多人语音-交友-陪玩-活动报名-商城-二手论坛-源码交付,支持二开!

圈子小程序适用于多种场景,涵盖了各个领域的社交需求。以下是一些常见的适用场景: 兴趣社区: 用户可以加入自己感兴趣的圈子,与志同道合的人一起讨论交流,分享经验和知识。 行业交流: 各个行业可以建立自…

202106青少年软件编程(Scratch图形化)等级考试试卷(二级)

第1题:【 单选题】 小明同学设计了一款游戏,其中一段程序如下图所示,下面这段程序可以实现哪项功能?( ) A:在任何地方点击鼠标,角色都会移到鼠标位置 B:没有任何操作的时候角色会在舞台区域随机移动 C:按下空格键后,角色会在一秒内滑行到舞台中央 D:角色碰到黄色会…

【保姆级】GPT的Oops问题快速解决方案

GPT的"Oops"问题通常指的是GPT在处理请求时突然遇到错误或无法提供预期输出的情况。要快速解决这个问题,可以尝试以下分步策略: 确认问题范围: 首先,确认问题是偶发的还是持续存在的。如果是偶发的,可能是临…

Hadoop大数据应用:HDFS 集群节点缩容

目录 一、实验 1.环境 2.HDFS 集群节点缩容 二、问题 1.数据迁移有哪些状态 2.数据迁移失败 一、实验 1.环境 (1)主机 表1 主机 主机架构软件版本IP备注hadoop NameNode (已部署) SecondaryNameNode (已部署…

中宣部防沉迷系统PHP版本(管局防沉迷验证-PHP-全版本-接口测试样例)

现在对接游戏,无论是登录还是支付都是要去对接防沉迷实名认证接口,但前期的话你要登录网络游戏防沉迷实名认证系统进行接口测试,$appid ,$bizId,$key去接口测试页面找(正式上线在密钥管理)&…

Cadence之创建自己的titleblock

在刚接触PCB原理图设计的时候,很多人是不会关注图纸Tile Block的。原因是觉得用不上。然而工作的时候这个反而很重要。原因呢,一是形成一个统一标准,便于归档,整洁清楚,二是其中包含重要信息,比如你的大名&…

派对游戏2024年新局面:二超多强,市场细分

2023年末,《元梦之星》上线迎战《蛋仔派对》,网腾大战打响。 这场战役从开局就进入到了白热化,双方投入真金白银来拉拢玩家,于春节这一亲朋相聚最适合派对游戏的时段集中发力,互有胜负。 目前《元梦之星》略处下风&a…

【STM32学习】基本定时器,输出比较模式,基本参数

1、概述 此项功能是用来控制一个输出波形,或者指示一段给定的的时间已经到时。 如输出PWM信号时,可用这个模式。 2、输出比较初始化函数,基本参数 以上函数是用来配置输出比较模块的,每个函数对应一个定时器的通道,配…

学习Android的第二十八天

目录 Android Service (服务) 线程 Service (服务) Service 相关方法 Android 非绑定 Service startService() 启动 Service 验证 startService() 启动 Service 的调用顺序 Android 绑定 Service bindService() 启动 Service 验证 BindService 启动 Service 的顺序 …

【论文阅读】

4. Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads 出处:2019 USENIX-TAC 大规模多租户GPU集群对DNN训练工作负载的分析 主要工作:描述了Microsoft中一个多租户GPU集群两个月的工作负载特征,研究影响多租户…

Vue2 + node.js项目

1、Vue2 vue2主要功能包括登入、退出、用户权限、表格的增删改查、文件下载。 Vue2项目地址https://gitee.com/www6/finance1.git 2、node.js编写后端接口 2.1、项目初始化 后端地址https://gitee.com/www6/finance-backend.git 创建项目 npm install -g koa-generator …

3dmax导入模型渲染过亮---模大狮模型网

在3ds Max中导入模型后渲染过亮可能是由于以下原因导致的: 材质和贴图设置: 检查导入的模型的材质和贴图设置,确保它们没有过度亮度或反射。调整材质的Diffuse(漫反射)颜色和Specular(高光)属性,以使渲染看起来更加自然。 光源设…

自媒体干货:PC版剪映实用小技巧介绍

目录 界面认识 导入素材 调整视频比例 调整时间线比例 调整素材 素材分割 添加转场 添加/删除滤镜 添加贴纸 添加文字 添加音乐 导出视频 剪映常用快捷键 剪映是一款全能易用的剪辑软件,用它可以非常轻松的制作出精美又有趣的视频。可以说&#xff0c…