c语言中两个按键互锁,欧姆龙cp1h常用指令学习(十五)多重互锁指令MILH,MILC...

本文主要是介绍c语言中两个按键互锁,欧姆龙cp1h常用指令学习(十五)多重互锁指令MILH,MILC...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

多重互锁指令是允许相互嵌套的,如下图所示:

8881ab115d12dd1e2b5fbc29e6bffd5b.png

其中,编号并非是必须全部是唯一的,而是保证两两MILH之间不一样即可。

也就是说,编号可以0,1,0,1这样嵌套使用下去。

为了解释清楚多重互锁的意义,勇哥编写了下面的例程。

这里我做了两把锁,编号为0,状态位为W100.00

编号为1,状态位为W100.01

如果我不导通W0.00的话,你会发现你直接导通w0.01是没有效果的。实际上,如果你不导通W0.00,

那么直到第9步之前的任何一步都不会被执行。即使你人工导通1.07, 1.09也没用,MOV指导根本不执行!

如果想按下1.09后的mov指令执行,你先是先导通W0.00, 再导通W0.01,然后才可以。

306dc44c0440b29e2df627c68ad1cc76.png

5d8cc24953a39d42441241e4c702fa32.png

童鞋你实验完成了没有?

有什么觉悟? 那么究竟这对指令能用来做什么?

其实这种指令可以算是一种步进指令,当你需要实现:第一步做什么,然后第二步做什么(如果第一步不做,第二步也做不了)这样的关系的时候就用得着这种指令。

由于plc的指令中的每一条都会在每个周期被调用一次,因此往往我们在plc程序的主控制逻辑中使用这种指令来组织代码。

例如下面的代码段中,画红框的代码段中,就使用了多重互锁指令,它使用了两把锁,全部机器自动运行的逻辑控制部分都分布在5个程序段中,且受到2把锁的先后序列的控制。

红框这外的程序段,则是事先写好的资源,比如报警、与B站PLC通讯、复位、轴运动等等。这些资源被红框处的程序段所调用。

使用这种方式划分后,程序的运行逻辑代码与资源代码就可以划分清楚了。

其实,从这个意义上来说,这个多重互锁指令也有些像子程序的作用。

255b9fcce051721e3d9b767fb6b815f7.png

---------------------

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!

其它相关文章:

#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。

收藏 | 0点赞 | 0打赏作者

这篇关于c语言中两个按键互锁,欧姆龙cp1h常用指令学习(十五)多重互锁指令MILH,MILC...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680000

相关文章

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

C# 预处理指令(# 指令)的具体使用

《C#预处理指令(#指令)的具体使用》本文主要介绍了C#预处理指令(#指令)的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1、预处理指令的本质2、条件编译指令2.1 #define 和 #undef2.2 #if, #el

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

一文详解Java常用包有哪些

《一文详解Java常用包有哪些》包是Java语言提供的一种确保类名唯一性的机制,是类的一种组织和管理方式、是一组功能相似或相关的类或接口的集合,:本文主要介绍Java常用包有哪些的相关资料,需要的... 目录Java.langjava.utiljava.netjava.iojava.testjava.sql

Springmvc常用的注解代码示例

《Springmvc常用的注解代码示例》本文介绍了SpringMVC中常用的控制器和请求映射注解,包括@Controller、@RequestMapping等,以及请求参数绑定注解,如@Request... 目录一、控制器与请求映射注解二、请求参数绑定注解三、其他常用注解(扩展)四、注解使用注意事项一、控制

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

C# 空值处理运算符??、?. 及其它常用符号

《C#空值处理运算符??、?.及其它常用符号》本文主要介绍了C#空值处理运算符??、?.及其它常用符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、核心运算符:直接解决空值问题1.??空合并运算符2.?.空条件运算符二、辅助运算符:扩展空值处理

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared