第1章 西门子1200基础指令讲解
第1章 西门子1200基础指令讲解
1.1 常开、常闭和线圈
1.1.1 指令介绍
如图1.1所示,a为常开触点的表示方法,b为常闭触点表示方法,c为赋值表示方法。赋值表示方法通常有称为线圈的表示方法。
图1.1 常开、常闭和赋值
PLC编程的目的是根据设计工艺要求控制现场的设备按照需求去实现某些功能。所以每一条PLC程序指令都会有它的作用和含义。有的PLC指令可以实现一定的功能,有的指令需要配合使用才能实现功能,无法单独使用。如上述所讲的常开、常闭和线圈是PLC编程应用最广泛的,但是又不能独立使用的,因为独立使用以后表达任何意思。
1.1.2 指令应用
如图1.2所示,程序段1表达的意思是当常开触点接通时,线圈接通。程序段2表达的意思是当常闭触点接通时,线圈接通。显然这两段程序没有具体的含义,如图所示指令上方都是问号,同时程序段前边都有带×的红色圆圈,表示程序的编写具有语法错误。
图1.2 指令应用1
如图1.3所示,程序段1表达的意思是当(系统开启I0.0)的常开触点接通时,(正转继电器Q0.0)的线圈接通。程序段2表达的意思是当(正转按钮I0.1)的常闭触点接通时,(反转继电器Q0.1)的线圈接通。程序一定要结合注释看,注释是与现场实际情况相结合的纽带。
程序应当这样理解:在按下(系统开启I0.0)时,(正转继电器Q0.0)接通。没有按下(正转按钮I0.1)时,(反转继电器Q0.1)接通。此处的前提条件为:I0.0和I0.1的外部按照正常来讲都是接常开触点。
图1.3 指令应用2
1.1.3 程序理解
所有的程序理解都需要有具体的使用环境和场景。就像图1.3所示,这两段程序不能表示太多含义。核心工作时输出,至于什么时候让输出,何时停止输出都是通过程序来编写的,那就是输出的条件会更多一些。根据现场的实际情况去编写输出所需要的条件,以保证输出的合理性。
编程的目的就是让各个点位之间产生关联。如图1.3中程序段1将I0.0和Q0.0两者产生了关联,程序段2将I0.1和Q0.1产生了关联。至于互相之间的关系如何发展,且看后续程序编写。
编程的核心问题:程序的编写是为了描述一个场景或者表达一个含义,核心部分在输出部分。PLC编程的核心中的核心是:让该输出的输出,禁止不该输出的输出。
1.1.4 启停保程序
如图1.4所示为经典的起保停电路。
状态1:当按下系统开始(I0.0)按钮时,由于停止按钮(I0.3)处于接通状态,所以正转继电器(Q0.0)会接通。
状态2:当正转继电器(Q0.0)的线圈接同时,对应的常开触点接通.
状态3:当(系统开始I0.0)按钮松开后,由于Q0.0的常开触点替代了I0.0的接通,那么此程序还能继续保持回路接通,Q0.0的线圈依然得电。
在状态3时,关键回路由正转继电器Q0.0的常开触点、停止按钮I0.3的常闭触点和正转继电器Q0.0的线圈组成。
如果想让线圈断开,只能按下(停止按钮I0.3)。因为在关键回路(能流导通的回路)上目前只有I0.3可控。I0.0虽然可控,但是I0.0不在关键回路,对现有状态无法改变。
状态4:当按下(停止按钮I0.3)后,关键回路断开,如果(系统开始I0.0)按钮没有同时按下时,关键回路是无法保持接通的,因此正(转继电器Q0.0)线圈断开。
图1.4 起保停1
1.1.5 问题思考
如图1.5所示,与图1.4不同的是I0.3采用了常开触点来表示按下停止按钮。那么如何理解呢?PLC编程有一个原则:模块的输入点接通时,该点的常开点接通,对应的该点的常闭触点断开,反之亦然。
图1.5中I0.3外部按钮接的是常闭触点,那么外部按钮I0.3在没有按下的情况下,PLC程序中的I0.3的常开触点就是接通的。如果I0.3外部按钮按下,PLC程序中的I0.3的常开触点就是断开的。
图1.5 起保停2
外部为什么要接常闭触点,统一都接常开接线不香吗?又方便有好记。试想一下:如图1.4所示,停止按钮外部就是接的常开触点。如果停止按钮损坏或者停止按钮到输入模块的线路断开,如果想理解停止运行的话是不可能的,因为PLC需要接收到停止信号才行。而反观图1.5所示,只要是停止按钮损坏或者停止按钮线路不通,那么线圈就不会接通。这样就保证了设备安全。因为涉及到特别重要的信号或者安全信号,外部都是需要接常闭触点的,如急停信号,限位信号,重要的连锁信号,任何原因的没有信号都将视为断开。
1.1.6 指令特性
常开触点接通时表示有能流流过该触点,常开触点断开时表示没有能流流过该触点。
常闭触点和常开触点也是同样的道理。该点接通和断开的时间取决于外部设备或者是该点位的线圈的接通时间。
1.1.7 触点和线圈的关系
实际工作中用到的中间继电器、时间继电器、接触器和固态接触器等,每一个线圈都有有对应的触点,一般都会有常开触点和常闭触点。当线圈得电接通时,常开触点闭合,常闭触点断开。在实际工作中,常闭触点先断开,常开触点后闭合,在PLC编程中我们认为常开触点和常闭触点的动作是同步的,没有先后的区分。
所有的触点都是由线圈来控制的,如图1.5中的Q0.0线圈接通后,Q0.0的常开触点闭合。类似的编程中可以使用的中间继电器还有M点,DB数据块中的Bool量等,如M0.0和DB10.DBX0.0。数字量输出、中间继电器,定时器和计数器都是有对应的触点的。
数字量输入是一个特例,I点在编程中是永远不会有线圈的。因为它是输入点,只有触点,它的线圈可以理解成数字量输入模块的接通信号(数字量输入点的指示灯)。
程序中使用开点和闭点根据实际情况需要。同一点位的常开点和常闭点状态永远是相反的。同一触点的常开点或者是常闭点可以根据需要无限次使用。同一点位的线圈,原则上只只能出现一次。
浅析S7-1200PLC的四则运算指令功能及使用方法
大家好,欢迎关注电气技术微课堂!这里会每天更新关于电气自动化、PLC、工业机器人、电子技术的原创文章和微课,如果你感兴趣请关注我
今天我们要谈一谈西门子S7-1200PLC中常用的四则运算指令 !
什么是四则运算指令呢?
四则运算指令包括加法指令ADD、减法指令SUB、乘法指令MUL、除法指令DIV四种。
一、加法指令ADD
执行加法指令ADD将输入IN1的值与输入IN2的值相加,并将加得结果存储在OUT设定的寄存器中。
加法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT指定数据类型的允许范围或浮点数为无效值时ENO为0。
IN1/IN2: 要相加的数值,可以是寄存器的地址或常数,单击ADD指令下的星标可以扩展输入的数目。
OUT: 加法计算结果输出,IN1+IN2=OUT,OUT端一般填写寄存器地址。
加法指令小提示: 可以从指令框的“<???>”下拉列表中选择该指令的数据类型,当地址长度与数据类型不匹配时,会将输入数值隐式转换为指定的数据类型,编译不会报错,但运行过程中可能会出错。
二、减法指令SUB
执行减法指令SUB,将由被减数IN1的值减去减数IN2的值,并将结果存入OUT设定的寄存器地址中。
减法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT 指定数据类型的允许范围或浮点数为无效值时ENO为0。
IN1: 被减数,可以是寄存器地址或常数。
IN2: 减数,可以是寄存器地址或常数。
OUT: 减法计算结果输出,IN1-IN2=OUT,OUT端一般填写寄存器地址。
三、乘法指令MUL
乘法指令MUL将输入 IN1 的值与输入 IN2 的值相乘,并将乘积保存在输出 OUT指定的寄存器中。
乘法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,指令正确执行期间ENO输出为1,
IN1: 乘数,可以是寄存器地址或常数。
IN2: 乘数,可以是寄存器地址或常数。
Inn: 可以添加多个相乘的数。
OUT: 输出乘积存入指定的寄存器中。
四、除法指令DIV
除法指令DIV将输入 IN1 的值除以输入 IN2 的值,并将除得的商保存在输出 OUT指定的寄存器中。DIV指令支持各种整型和实数型数据。
除法指令功能框各端口的定义如下
EN: 使能输入,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出 ,指令正确执行期间ENO状态为1。
IN1: 被除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。
IN2: 除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。
OUT: 商值,输出OUT为执行除法指令得到的商,数据类型为无符号整数,余数被省略不计。
除法指令小提示
在使用除法指令DIV时,OUT输出端为除得的商值,数据类型为无符号整型,余数被省略不显示,如果需要求余数需使用MOD指令。
四则运算指令的实际应用举例
例题:温度传感器将采集到的温度值转换为电压信号输入给PLC,测量范围是0~100Co,数值经过被CPU集成的模拟量通道0(地址为IW64)转换为0~27648的数字,假设转换后的数字为T,试求以为Co单位的温度值。
解:0~100Co的温度值经A/D转换后的数字为0~27648,设转换后得到的数字为T,转换公式为
在编辑指令时,为了保证运算精度,应先乘后除。
因为公式中IW64乘以100的运算结果可能会大于16位整数的最大值32767(IW64为16位存储器,模拟值为二进制的补码,最高位为符号位,0为负,1为正),因此应将IW64中的数值数据类型转换为实数再进行乘除运算。
相关问答
1200plc 顺序控制 指令 ?众所周知,S7-1200不支持Graph语言,但这种语言又很适合顺序逻辑控制,按照工艺的步序,一步步编程即可,为了解决S7-1200在Graph方面的弊端,我们可以通过CASEO...
1200西门子 程序介绍?本书主要以西门子公司的S7-1200PLC为讲授对象,通过大量例题和实训,通俗易懂地介绍了S7-1200PLC的逻辑指令、功能指令、模拟量及脉冲指令、PID指令、通信指令及...
西门子1200plc 上升沿怎么用?在西门子1200PLC中,上升沿常常被用作触发PLC输入信号的方式,类似于按钮按下的那一瞬间。以下是如何在西门子1200PLC上使用上升沿的步骤:1.在PLC编程软件中...
西门子1200 的neg是什么 指令西门子1200的neg指令是用于改变指定位的状态,将其从1变为0。在PLC程序中使用neg指令可以实现对特定输出位的控制,将其状态取反。例如,negM0.0就是将M0.0的状...
s7一 1200 有几种工作模式?三种哦#560.0是一个指针地址,该指令的意思是将IN1+IN2得到的和放到以M560.0开始的64个位的M存储器中(m560.0~m570.0)占用8个字节。LReal是64位指令只有西门.....
西门子1200 modbustcp协议 详解 ?协议是以TCP/IP为底层通信协议,在应用层上使用Modbus协议传输数据,实现PLC设备间的远程通信。协议包括四个部分:1、数据结构:该数据结构描述了Modbus功能码如...
西门子1200plc 上有哪些功能模块常用有数字量输入模块,数字量输出模块,模拟量输入模块,模拟量输出模块常用有数字量输入模块,数字量输出模块,模拟量输入模块,模拟量输出模块
西门子1200plc 如何查找与替换?RL+G执...选择编辑(Edit)>查找(Find)、编辑(Edit)>替换(Replace)或编辑(Edit)>转入(GoTo)菜单命令·按CTRL+F执行查找...
西门子1200plc 编码器编程实例?西门子1200PLC的编码器可以通过编程实现各种控制功能。以下是一个简单的实例,用于控制一个温度传感器并将其转换为数字信号,以便在PLC中进行计数和计算:1.创...
西门子 region 指令 ?答西门子region指令是西门子PLC编程语言中的一种指令,用于定义一个程序块,它可以包含多个指令,以实现特定的功能。Region指令的格式为:Region[region_name]...