1.指令操作数

指令操作数由操作标示符和參数组成。

操作标识符由主标识符和辅标识符组成。

主标识符有:I(输入过程影像寄存器)、Q(输出过程映像寄存器)、M(位寄存器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)、L(本地数据寄存器)

辅助标识符有:X(位)、B(字节)、W(字或2B)、D(2DW或4B)

具体介绍能够參看下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ3NodWl5dWU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="700" height="400" alt="">

2.寻址方式

S7-300的4种寻址方式有:

1)马上寻址

马上寻址是对常数或常量的寻址方式。样例例如以下:

L66 				//表示把常数66装入累加器1中
AW W#16#168 //将16进制数168与累加器1的低字进行“与”运算
SET //默认操作数为RLC,该指令实现对RLO置“1”操作

2)存储器直接寻址

直接寻址指在指令中直接给出操作数单元地址。

存储单元地址可用符号地址(如“sb1_start”等)或绝对地址(如“I0.0"、"Q4.1”等)。

样例例如以下:

A I0.0 //对输入位I0.0运行逻辑“与”运算
= Q4.1 //将逻辑运算结果送给输出继电器Q4.1
L MW2 //将存储字MW2的内容装入累加器1
T DBW4 //将累加器1低字中的内容传送给数据字DBW4

3)存储器间接寻址

间接寻址指:在指令中以存储器的形式给出操作数所在存储单元的地址。在指令中一般写在“[]”中,採用地址指针,地址指针在地址范围小于65535的存储器中能够使用字指针;而其它的存储器则须要使用双字指针。比如:

A.存储器地址单字节地址指针寻址

OPN DB[MW0] //打开数据块,若MW0为1,则就是打开DB2.MW0的改变。则打开的数据块儿也改变

B.存储器地址双字节地址指针寻址

L P#8.7
//把指针值装载到累加器

//P#8.7的指针值为:2#0000_0000_0000_0000_0000_0000_0100_0111

T [MD2]
//把指针值送到MD2

A I[MD2]
//查询I8.7的信号状态

= Q[MD2}
//给出输出位Q8.7赋值

4)寄存器间接寻址

寄存器间接寻址指通过地址寄存器和偏移量间接获取操作数,地址寄存器和偏移量需写在“[]”中。S7-300中有两个地址寄存器AR1、AR2。

地址寄存器地址有两种格式,其长度均为双字。格式例如以下:

位24~26 地址指针区域标识位的含义:

A.区内寄存器间接寻址

该寻址对于哪个存储区寻址需明白给出。

L	P#3.2	//将间接寻址的指针装入累加器1
//P#3.2的指针值为:2#0000_0000_0000_0000_0000_0000_0001_1010
LAR1 //将累加器1的内容送入地址寄存器AR1
//AR1的指针值为:2#0000_0000_0000_0000_0000_0000_0001_1010
A I[AR1,P#5.4] //P#5.4的指针值为:2#0000_0000_0000_0000_0000_0000_0010_1100
//AR1与偏移量相加结果:2#0000_0000_0000_0000_0000_0000_0100_0110
//对输入位I8.6进行逻辑“与”操作
= Q[AR1,P#1.6] //P#1.6的指针值为:2#0000_0000_0000_0000_0000_0000_0000_1110
//AR1与偏移量相加结果:2#0000_0000_0000_0000_0000_0010_1000
//对输出位Q5.0进行赋值操作

B.区域间寄存器间接寻址

该选择通过区域标识位26~24位确定。

L	P#I8.7	//把指针值及存储区域标识装载到累加器1
//P#I8.7的指针值为:2#1000_0001_0000_0000_0000_0000_0100_0111
LAR1 //把存储区域I和地址8.7装载到AR1
L P#Q8.7 //把指针值和地址标识符装载到累加器1
//P#Q8.7的指针值:2#1000_0010_0000_0000_0000_0000_0100_0111
LAR2 //把存储区域Q和地址8.7装载到AR2
A [AR1,P#0.0] //查询输入位I8.7的信号状态(偏移量0.0不起作用)
= [AR2,P#1.2] //输出位Q10.1赋值

3.CPU中的寄存器

1)累加器(ACCUx)

累加器用于处理字节、字、双字寄存器。S7-300有2个32位累加器(ACCU1、ACCU2)。

S7-400有4个32位的累加器(ACCU1~ACCU4)。数据放在累加器的低位(右对齐)。

2)状态字

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ3NodWl5dWU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="480" height="200" alt="">

西门子PLC学习笔记六-(Step7指令简单介绍)的更多相关文章

  1. (转载)西门子PLC学习笔记十五-(数据块及数据访问方式)

    一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的 ...

  2. 西门子PLC学习笔记二-(工作记录)

    今天师傅给讲了讲做自己主动化控制的总体的思路,特进行一下记录,做个备忘. 1.需求分析 本次的项目是对楼宇循环供水的控制,整个项目须要完毕压力.压差.温度等的获取及显示.同一时候完毕电机的控制. 2. ...

  3. JMeter学习笔记2-图形界面简单介绍

    废话少说直接干活的给: 一.打开和运行JMeter,出现UI界面.如图下所示: 工具栏:常见操作的图标集合,有New(新建), Template(模板) ,Save(保存),Start(开始) ,St ...

  4. 西门子PLC学习笔记七-(位逻辑指令)

    位逻辑指令处理的对象为二进制位信号.存储在状态字"RLO"中. 1.触点与线圈指令 1)常开触点 在PLC中规定:操作数为1,则常开触点"动作(闭合)":操作数 ...

  5. 西门子PLC学习笔记8-(计时器)

    计时器port这包括:信号输入.时间.复位信号.出口.[计时器剩余时间(BI二进制表示法.BCD码表示)其输出被存储MW] 定时器包括::S_PULSE(脉冲定时器).S_PEXT(延时脉冲定时器). ...

  6. 【Android学习笔记】布局的简单介绍

    我在学习Android开发的时候是基于实战项目的,基础理论知识以前也是零散的看过一些,个人还是觉得边做项目边学要快些.现在做的这个项目iOS端是我做的,这样逻辑什么的都很熟悉,于我而言换个平台也只是换 ...

  7. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  8. angular学习笔记(三十)-指令(10)-require和controller

    本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...

  9. angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令

    在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指 ...

随机推荐

  1. Linux内核网络数据包处理流程

    Linux内核网络数据包处理流程 from kernel-4.9: 0. Linux内核网络数据包处理流程 - 网络硬件 网卡工作在物理层和数据链路层,主要由PHY/MAC芯片.Tx/Rx FIFO. ...

  2. CentOS7.6 修改密码

    一.重启系统,在开机过程中,按下键盘上的e,进入编辑模式   三.将光标一直移动到 LANG=en_US.UTF-8 后面,空格,再追加init=/bin/sh.这里特别注意,需要写在UTF-8后,保 ...

  3. UVa-1585-得分

    #include <stdio.h> #include <string.h> int main() { char s[100]; int T; scanf("%d&q ...

  4. 02-Mysql中的运算符

    Mysql中运算符 1.算术运算符运算符 作用+   加法-    减法*    乘法/,DIV     除法,返回商%,MOD       除法,返回余数 mysql root@localhost: ...

  5. LEFT JOIN结果集可能变大。。。。。

    SELECT A.*,B.* FROM A LEFT JOIN B ON A.ID = B.ID

  6. Spring Boot 集成Angular程序

    假设 1.你已经完成了Spring Boot的示例,在浏览其中输入http://localhost:8080/index,能够返回html页面. 2.你已经完成了Angular程序,名字为quicks ...

  7. Spring Boot Web开发中Thymeleaf模板引擎的使用

    这里使用的是idea 1.新建Spring Boot项目 File-->New-->Project...,然后选择左边的Spring Initializr-->Next,可根据自己的 ...

  8. Ext修改Confirm弹框按钮的默认值

  9. 一个抓取智联招聘数据并存入表格的python爬虫

    talk is cheap...show you the code..... import requests import lxml,time,os from bs4 import Beautiful ...

  10. hexo干货系列:(七)hexo安装统计插件

    前言 前面介绍了如何让百度和谷歌收录我们的博客,那如何查看自己的博客每天被多少人访问呢~ 这里我介绍下hexo中如何使用统计插件,每天看到自己的博客访问量越来越高也是一种享受. 正文 开启统计功能 我 ...