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. Cycloid Hydraulic Motor Use: Use Failure And Treatment

    The cycloidal hydraulic motor is a small low-speed, high-torque hydraulic motor with a shaft-distrib ...

  2. PHP19 PHPStorm2018和GitHub的使用

    目的 使用GitHub的代码仓库进行项目代码托管. 准备工作 1.在GitHub注册账号 https://github.com/ 2.Start a Project 登陆后创建一个项目 3.创建版本仓 ...

  3. tensorflow-gpu install check

    https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c#file-tensorflow_self_check-py-L16

  4. 理解 Word2Vec 之 Skip-Gram 模型

    理解 Word2Vec 之 Skip-Gram 模型 天雨粟 模型师傅 / 果粉 https://zhuanlan.zhihu.com/p/27234078 508 人赞同了该文章 注明:我发现知乎有 ...

  5. 解决普遍pc端公共底部永远在下面框架

    <div style="width: 90%;height: 3000px;margin: 0 auto; background: red;"></div> ...

  6. 7. 配置undo表空间

    7. 配置undo表空间 undo日志可以存储在一个或多个undo表空间中,无需存储在系统表空间中. 要为MySQL实例配置单独的undo表空间,请执行以下步骤 [重要]: 只能在初始化新MySQL实 ...

  7. 配置github SSH公钥登录

    git的安装见https://www.cnblogs.com/liliyang/p/9829931.html 配置git使用ssh密钥 git支持https和git两种传输协议,github分享链接时 ...

  8. docker run redis

    #拉取 Redis 镜像 C:\Users\WYJ>docker pull redis Using default tag: latest latest: Pulling from librar ...

  9. Android 图片设置圆角

    Android中经常会遇到对图片进行二次处理,例如加圆角,或者显示圆形图片 方法一: 通过第三方框架Glide实现图片显示有圆角,有三种写法如下: 1.1,第一种实现: RequestOptions ...

  10. Ext.js双击事件

    /** * 联系人列表panel */ Ext.define('Op.OpBill.OpBillCustLinkGridPanel', { extend: 'Ext.grid.Panel', id: ...