西门子STL间接寻址常问问题集
2.1.4 间接寻址_PLC职业技能培训及视频精讲——西门子STEP 7_[共2页]
![2.1.4 间接寻址_PLC职业技能培训及视频精讲——西门子STEP 7_[共2页]](https://img.taocdn.com/s3/m/b5a4a40476eeaeaad0f33035.png)
第2章 PLC
快速提高
189
图2.1.1 STEP 7管理界面
图2.1.2 全局符号表 图2.1.3 使用符号地址程序例 (2)局域符号
请参考本章功能和功能块相关内容。
2.1.4 间接寻址
1.存储器间接寻址
A I[MD10] //检测I 位的状态,I 的地址由MD10的值决定
= Q[MD10]
//驱动Q 位,Q 的地址由MD10的值决定 L QD[MD10] //装载QD 的数值到累加器1中,QD 的地址由MD10的值决定
上面程序中I[MD10]和Q[MD10],像这种使用存储器给定地址的寻址方式,称为存储器间接寻址。
I[MD10]和Q[MD10]中的MD10称为指针,其里面的数值代表地址,例如P#3.5。
能作为指针使用的存储器有MD 、LD 、DBD 和DID ,而且必须是双字。
存储器指针的格式如图2.1.4所示,其中0~2位是地址的位编号(0~7),3~18位是字节的编号(0~65535)。
例如在图2.1.5所示程序中,MD10 = 2#111011,0~2位的数值是3,3~18位的数值是7,所示MD10指针值是P#7.3。
使用存储器寻址,该存储器的值是操作数的地址,改变该储存器的值相当于改变了操作数的地址,在循环等程序中经常使用存储器间接寻址。
值得注意的是,如果操作数是字节、字或双字,使用存储器间接寻址时,需要确保指针代表位地址的值为零,否则会出现寻址错误。
西门子S系列PLC试题及答案

精选试题西门子S7-200PLC试题1一、填空题20分1.S7-200系列PLC的数据存储区分两大部分;是与..2.高速计数器HC的寻址格式是..3.S7-200型PLC的定时器包括ton 、tof 、tonr 三种类型.. 4.S7-200系列PLC的q0.0 与q0.1 两个输出端子;除正常使用外;还可利用PLC的高速输出功能产生PTO与PWM输出..5.定时器预设值PT采用的寻址方式为字寻址..6.在PLC运行的第一个扫描周期为ON的特殊存储器位是sm0.1 ..7.S7-200系列PLC共有 6 个高速计数器;其中只有1种工作模式的是hsc3和hsc5 ..8.定时器的两个变量是当前值和位值..9.PLC中输入接口电路的类型有直流和交流两种..10.I/O总点数是指输入信号和输出信号的数量..11.具有自己的CPU和系统的模块称为智能模块..12.EM231模拟量输入模块的输入类型为差分输入型..二、选择题40分1.下列那项属于双字寻址..A.QW1 B.V10 C.IB0 D.MD282.只能使用字寻址方式来存取信息的寄存器是..A.S B.I C.HC D.AI3.SM是哪个存储器的标识符..A.高速计数器B.累加器C.内部辅助寄存器D.特殊辅助寄存器4.CPU214型PLC本机I/O点数为 ..A.14/10 B.8/16 C.24/16 D.14/165.CPU214 型PLC有几个通讯端口..A.2个B.1个C.3个D.4个6.HSC1的控制寄存器是..A.SMW137 B.SMB57 C.SMB47 D.SMW1477.指令的脉宽值设定寄存器是..A.SMW80 B.SMW78 C.SMW68 D.SMW708.顺序控制段开始指令的操作码是..A.SCR B.SCRP C.SCRE D.SCRT9.S7-200系列PLC继电器输出时的每点电流值为..A.1A B.2A C.3A D.4A10.字传送指令的操作数IN和OUT可寻址的寄存器不包括下列那项 ..A.T B.M C.AQ D.AC11.PLC的系统程序不包括 ..A.管理程序B.供系统调用的标准程序模块C.用户指令解释程序D.开关量逻辑控制程序12.PID回路指令操作数TBL可寻址的寄存器为..A.I B.M C.V D.Q13.并行数据通信是指以为单位的数据传输方式A.位或双字B.位或字C.字或双字D.字节或字14.RS-232串行通信接口适合于数据传输速率在范围内的串行通信..A.0~20000bps B.0~2000bps C.0~30000bps D.0~3000bps15.当数据发送指令的使能端为时将执行该指令..A.为1 B.为0 C.由1变0 D.由0变116.对通讯协议进行设定的是..A.SMB30.7、6 B.SM30.4、3、2 C.SM30.0、1 D.SMB3.5、4 17.若波特率为1200;若每个字符有12位二进制数;则每秒钟传送的字符数为个.. A.120 B.100 C.1000 D.120018.EM231模拟量输入模块最多可连接个模拟量输入信号..A.4 B.5 C.6 D.319.若整数的加减法指令的执行结果发生溢出则影响位..A.SM1.0 B.SM1.1 C.SM1.2 D.SM1.320.字取反指令梯形图的操作码为..A.INV-B B.INV-W C.INV-D D.INV-X三、判断题20分1.PLC中的存储器是一些具有记忆功能的半导体电路..2.PLC可以向扩展模块提供24V直流电源..3.系统程序是由PLC生产厂家编写的;固化到RAM中..4.TONR的启动输入端IN由“1”变“0”时定时器复位..5.字整数比较指令比较两个字整数大小;若比较式为真;该触点断开..6.在执行查表指令的过程中;为了查找下一个符合条件的数据;在激活查表指令前;必须先对INDX减1..7.并行数据通信是指以字节或字为单位的数据传输方式..8.EM232模拟量输出模块是将模拟量输出寄存器AQW中的数字量转换为模拟量.. 9.RS-232串行通信接口使用的是负逻辑..10.PLC处于自由端口通讯模式时可以与可编程设备通讯..11.PLC的工作方式是等待扫描的工作方式..12.在数据通信的总线型结构中;当某一站点发生故障时;整个系统就会瘫痪..13.数据发送指令XMT的操作数PORT指定通讯端口;取值为0或1..14.两个PLC之间的自由口通信主要是通过设置控制字节SMB30来实现的..15.S7-200系列PLC的点对点通信网络使用PPI协议进行通讯..16.EM231模拟量输入模块的单极性数据格式为-32000~+32000..17.块传送指令的操作数N指定被传送数据块的长度;采用字寻址..18.CTUD计数器的当前值大于等于预置数PV时置位;停止计数..19.字节循环移位指令的最大移位位数为8位..20.PLC扫描周期主要取决于程序的长短..四、综合题1.已知某控制程序的语句表的形式;请将其转换为梯形图的形式..4分LD I0.0AN T37TON T37;1000LD T37LD Q0.0CTU C10;360LD C10O Q0.0= Q0.02.已知输入触点时序图;结合程序画出Q0.0的时序图..3分3.有电动机三台;希望能够同时启动同时停车..设Q0.0、Q0.1、Q0.2分别驱动电动机的接触器..I0.0为启动按钮;I0.1为停车按钮;试编写程序..5分4.组合机床的工作循环图及元件动作表如图示;试用置位复位指令编写程序..8分西门子S7-200PLC试题2一、填空题20分1.PLC的输出接口类型有、与..2.PLC的软件系统可分为和两大部分..3.S7-200型PLC的指令系统有、、三种形式.. 4.已知表格如图1所示..分析执行FIFO指令后;VW4中的数据是..5.高速计数器定义指令的操作码是..6.CPU214型PLC的晶体管输出组数为..7.正跳变指令的梯形图格式为 ..8.字节寻址的格式由、、组成..9.CPU214型PLC共有个计数器..10.EM231模拟量输入模块最多可连接_____ ___个模拟量输入信号..11.PLC的运算和控制中心是__ ___..12.S7-200系列PLC的串行通信口可以由用户程序来控制;这种由用户程序控制的通信方式称为____________..13. 数据发送指令XMT的操作数PORT指定通讯端口;取值为___________..二、选择题40分1.AC是哪个存储器的标识符..A 高速计数器B 累加器C 内部辅助寄存器D 特殊辅助寄存器2.在PLC运行时;总为ON的特殊存储器位是A SM1.0B SM0.1C SM0.0D SM1.13.CPU214型PLC数据存储器容量为4.定时器预设值PT采用的寻址方式为A.位寻址B.字寻址C.字节寻址D.双字寻址5.世界上第一台PLC生产于A.1968年德国B.1967年日本C.1969年美国D.1970年法国6.CPU214 型PLC有几个通讯端口..A 2个B 1个C 3个D 4个7.S7-200系列PLC有6个高速计数器;其中有12种工作模式的是..A HSC0、HSC1B HSC1、HSC2C HSC0、HSC4D HSC2、HSC48.下列那项属于字节寻址..A.VB10B.VW10C.ID0D. I0.29.字节传送指令的操作数IN和OUT可寻址的寄存器不包括下列那项A.VB.IC.QD.AI10.图示指令的脉宽值设定寄存器是 ..A SMW80B SMW78C SMW68D SMW7011. CPU 逐条执行程序;将执行结果放到..A输入映象寄存器B输出映象寄存器C 中间寄存器D辅助寄存器12. 用来累计比CPU扫描速率还要快的事件的是..A高速计数器 B 增计数器C 减计数器D 累加器13.图示程序中的累加器用的是那种寻址方式A.位寻址B.字节寻址C.字寻址D.双字寻址14. 顺序控制段转移指令的操作码是 ..A SCRB SCRPC SCRED SCRT15. 整数的加减法指令的操作数都采用寻址方式..A 字B双字 C 字节 D 位16. 高速计数器1的控制字节是..A SMB37B SMB47C SMB57D SMB13717. EM231模拟量输入模块的输入类型为..A.微分输入型B.晶体管输入型C.继电器输入型D.差分输入型18. PID回路指令操作数TBL可寻址的寄存器为..A.IB.MC.VD.Q19. PLC处于模式时;允许进行自由端口通讯..A.RUN模式B.PROGRAM模式C. 监控模式D.都可以20. 当数据接收指令RCV的使能端为时将执行该指令..A.为1B.为0C.由1变0D.由0变1三、判断20分1.PLC的输入电路均采用光电耦合隔离方式..2.CPU214型PLC本机I/O点数为14/10..3.CTD计数器的当前值等于0时置位;但会继续计数..4.S7-200系列PLC可进行间接寻址的存储器是I、Q、M、S、T及C. 5.字节移位指令的最大移位位数为8位..6. 在第一个扫描周期接通可用于初始化子程序的特殊存储器位是SM0.1..7. 梯形图程序指令助记符和操作数组成..8. 位寻址的格式由存储器标识符、字节地址及位号组成..9. 间接寻址是通过地址指针来存取存储器中的数据..10.执行逻辑弹出栈指令使堆栈深度减1..11. 正跳变指令每次检测到输入信号由0变1之后;使电路接通一个扫描周期..12.定时器定时时间长短取决于定时分辨率..13.CTD计数器的当前值等于0时置位;但会继续计数..14.I-D指令的功能是将把一个16位整数值数转换为一个32位的双字整数..15.EM231模拟量输入模块的数据格式有单极性和双极性两种..16.EM231模拟量输入模块的单极性数据格式为0~32000..17 RS-232串行通信的传输速率较高;可以远距离传输..18.数据通信的树型结构;可以直接在同级站点间进行数据传输;不必要通过上一级站点的转接来实现..19. PPI协议是一个主/从协议;支持一主机多从机连接和多主机多从机连接方式..20. 在触摸屏与PLC已联机的情况下;操作者就可以通过触摸屏对PLC进行各种操作..四、综合题1.已知给出某个控制程序的梯形图的形式;请将其转换为语句表的形式..4分2.已知输入触点时序图;结合程序画出Q0.0 和Q0.1的时序图..3分3.电机星-三角降压启动;Q0.0为电源接触器;Q0.1为星接输出线圈;Q0.2为角接输出线圈;I0.1为启动按钮;I0.0为停止按钮;星-角切换延时时间为5秒..试编写程序..6分4.采用一只按钮每隔3秒钟顺序启动三台电动机;试编写程序..7分西门子S7-200PLC试题3一、选择题20x2=40分1.PLC的工作方式是..A 等待工作方式B 中断工作方式C 扫描工作方式D 循环扫描工作方式2.在输出扫描阶段;将寄存器中的内容复制到输出接线端子上..A 输入映象B 输出映象C 变量存储器D 内部存储器3.JMP n 这条指令中;n的取值范围是..A 0-128B 1-64C 0-256D 0-2554.顺序控制段开始指令的操作码是..A SCRB SCRPC SCRED SCRT5 给出FOR指令的格式如右图所示..当EN条件允许时将FOR 与NEXT 指令之间的程序执行次..A 20B 1C VW10D 196 双字整数的加减法指令的操作数都采用寻址方式..A 字B双字 C 字节 D 位7 若整数的乘/除法指令的执行结果是零则影响位..A SM1.0B SM1.1C SM1.2D SM1.38 实数开方指令的梯形图操作码是..A EXPB LNC SQRTD TIN9 设VWl0中存有数据123.9;现执行以下指令;则指令的执行结果是 ..A 123.5B 124C 120 D12310 取整指令的梯形图指令的操作码是..A TRUNCB ROUNDC EXPD LN11 设累加器AC2中的低四位存有十进制数3;现执行以下指令;则指令的执行结果VW40的内容是A 0008HB 08HC 03HD 0003H12 已知表格如下..问当I0.0接通时执行填表指令;则指令的执行结果中VW202中的值是 ..A 0002B 0003C 0001D 000413高速计数器HSC0有种工作方式..A 8种B 1种C 12种D 9种14高速计数器2的控制字节是..A SMB37B SMB47C SMB57D SMB13715 定义高速计数器指令的操作码是..A HDEFB HSC C HSC0D MODE16 脉冲输出指令的操作码为..A PLUSB PLSC ATCHD DTCH17 中断分离指令的操作码是..A DISIB ENIC ATCHD DTCH18 以下不属于PLC的中断事件类型..A通讯口中断B I/O中断C时基中断D 编程中断19 EM231模拟量输入模块的输入类型为..A.微分输入型B.晶体管输入型C.继电器输入型D.差分输入型20 若波特率为1200;若每个字符有12位二进制数;则每秒钟传送的字符数为个..A 120B 100C 1000D 1200二、填空题每空1分;共20分1 S7-200系列PLC的指令系统有、、三种类型..2 PLC的软件系统可分为和两大部分..3 位寻址的格式由、、分隔符及四部分组成..4 定时器的三种类型分别是、和..5 字移位指令的最大移位位数为..6 顺序控制继电器指令包括、和三个指令..7 子程序可以嵌套;嵌套深度最多为层..8 通常把内部存储器又称为..9 PLC运行时总是ON的特殊存储器位是..10 用来累计比CPU扫描速率还要快的事件的是..11 通过通讯处理器;可以将S7-200系统连接到工业以太网IE中..三、判断题20X1=20分1栈装载或指令是将堆栈中的第一层和第二层的值进行逻辑或操作;结果存入栈顶..2正跳变指令每次检测到输入信号由0变1之后;使电路接通一个扫描周期..3TON的启动输入端IN由“1”变“0”时定时器并不复位而是保持原值..4块传送指令的操作数N指定被传送数据块的长度;采用双字寻址..5定时器类型不同但分辨率都相同..6 EM231热电阻模块是专门将热电阻信号转为数字信号的智能模块..7 RS-232串行通信接口使用的是正逻辑..8数据通信的树型结构;可以直接在同级站点间进行数据传输;不必要通过上一级站点的转接来实现..9暂停指令能够使PLC从RUN 到STOP;但不能立即终止主程序的执行..10使用顺序控制继电器指令时;不能在SCR段内使用FOR、NEXT或END指令.11整数的加减指令的功能是将两个8位的整数相加减;得到一个8位的整数结果..12TRUNC指令把32位实数转换成32位符号数;小数部分按照四舍五入原则处理..13 PTO为高速脉冲串输出;它可输出一定脉冲个数和一定周期的占空比为50%的方波脉冲..14 中断分离指令DTCH截断一个中断事件EVNT和所有中断程序的联系;但并不禁止该中断事件..15并行数据通信常用于远距离的数据传输场合..通常计算机内部各部件之间的数据交换都采用并行通讯..16系统管理程序的主要功能是管理程序的执行和存储空间分配管理..17 开关量逻辑控制程序是将PLC用于开关量逻辑控制软件;一般采用PLC生产厂家提供的如梯形图、语句表等编程语言编制..18 PLC是采用“并行”方式工作的..19存储器AI、AQ只能使用双字寻址方式来存取信息..20间接寻址是通过地址指针来存取存储器中的数据..四、编程题3题共20分1.某组合机床的工作循环图及元件动作表如下所示..现用顺序控制继电器指令编写控制程序..7分2.1049 采用一只按钮;每隔三秒钟顺序启动三台电动机;试编写程序..7分3.1020 将下面的梯形图程序转换成语句表指令形式..6分西门子S7-200PLC试题4一、选择题20x2=40分1 已知表格如下..问当I0.0接通时执行填表指令;则指令的执行结果中VW202中的值是..A 0004B 0002C 0001D 00032 HSC0的当前值设定寄存器是 ..A SMD38B SMD48C SMD58D SMD1383 在顺序控制继电器指令中的操作数n;它所能寻址的寄存器只能是 ..A SB MC SMD T4 无条件子程序返回指令是 ..A CALLB CRETC RETD SBR5 把一个BCD码转换为一个整数值的梯形图指令的操作码是..A B-IB I-BCDC BCD-ID I-R6 段译码指令的梯形图指令的操作码是 ..A DECOB ENCOC SEGD TRUNC7 设AC1中的低16位存有十六进制数16#8200;现执行以下指令;则指令的执行结果VB40中的内容是A 0009HB 09HC 08HD 04H8 填表指令的功能是向表中增加一个数值;表中第一个数是数..A 要填进表中的数B 最大填表数C 实际填表数D 表中已有的数值9 在查表指令中;若被查数据与参考数据之间的关系是不等于;则查表指令的语句表的操作码是..A FIFOB FILOC FIND=D FIND〈〉10 设VW10中的数据是6543H;VW20中的数据是0897H;则执行下列程序;VW20的内容是 ..A 4DD7HB 5489HC 0003HD 9ABCH11 中断程序标号指令的操作码是..A ENI BRET C INT D DSI12 下列不属于PLC硬件系统组成的是..A. 用户程序B.输入输出接口C. 中央处理单元D.通讯接口13 CPU214型PLC本机I/O点数为..A.14/10B.8/16C.24/16D.14/1614 CPU214型PLC共有个定时器..A.64B.255C. 128D. 25615可使用位寻址方式来存取信息的寄存器不包括..A. IB. QC. ACD. SM16 图示程序中的累加器用的是那种寻址方式A.位寻址B.字节寻址C.字寻址D.双字寻址17 EM231模拟量输入模块最多可连接个模拟量输入信号..A.4B.5C.6D.318 RS-232串行通信接口适合于数据传输速率在范围内的串行通信..A.0~20000bps B.0~2000bpsC.0~30000bpsD.0~3000bps19 对通讯所使用的数据位数进行设定的是..A.SMB30.54 D. SMB30.5、620 PLC的工作方式是..A 等待工作方式B 中断工作方式C 扫描工作方式D 循环扫描工作方式二、填空题每空1分;共20分1 在第一个扫描周期接通可用于初始化子程序的特殊存储器位是..2 定时器有三种类型;包括; 和..3 中断程序标号指令的语句表指令的格式INT;n;其中n指的是..4 I/O口中断事件包含中断、中断和中断三类..5 定时器中断由1ms延时定时器和产生..6 累加器寻址的统一格式为..7 子程序调用与子程序指令的操作数SBR_n中;n是;其取值范围是8 和两条指令间的所有指令构成一个循环体..9 把一个实数转换为一个双字整数值的ROUND指令;它的小数部分采用是原则处理..10 段译码指令的操作码是..它的源操作数的寻址方式是寻址;目的操作数的寻址方式是寻址..11 填表指令可以往表格里最多填充个数据..三、判断题20X1=20分1执行逻辑推入栈指令使堆栈深度减1..2提供一个周期是1秒钟;占空比是50%的特殊存储器位是SM0.4..3用来累计比CPU扫描速率还要快的事件的是高速计数器..4 7-200可以通过CP-243-1 IT通讯处理器的IT功能;非常容易的与其它计算机以及控制器系统交换文件;可以在全球范围内实现控制器和当今办公环境中所使用的普通计算机之间的连接..5在工程实践中;常把输出映象寄存器称为输出继电器..6 JMP指令的功能是使程序跳转到另一个程序的具体标号处..7 使用顺序控制继电器指令时;可以在SCR段内使用FOR、NEXT或END指令..8子程序可以嵌套;嵌套深度最多为8层..9位寻址的格式由存储器标识符、字节地址、分割符及位号组成..10定时器的寻址依赖所用指令;带位操作数的指令存取位值;带字操作数的指令存取当前值.. 11栈装载与指令是将堆栈中的第一层和第二层的值进行逻辑与操作;结果存入栈顶..12正跳变指令每次检测到输入信号由0变1之后;使电路接通一个扫描周期..13定时器定时时间长短取决于定时分辨率..14 TONR的启动输入端IN由“1”变“0”时定时器复位..15字节比较指令比较两个字节大小;若比较式为真;该触点断开..16双字循环移位指令的操作数N指移位位数;要通过字寻址方式来设置..17位移位寄存器指令每当EN端由0变1时;寄存器按要求移位一次..18有条件结束指令将根据前面的逻辑关系决定是否终止用户程序..19 EM231热电偶模块可以连接6种类型的热电偶..20 RS-232串行通信接口使用的是正逻辑..四、编程题3题共20分1 组合机床的工作循环图及元件动作表如图示;试用置位复位指令编写程序..7分2 简单的位置控制..控制要求:①用多齿凸轮与电动机联动;并用接近开关来检测多齿凸轮;产生的脉冲输入至PLC的计数器..②电动机转动至4900个脉冲时;使电动机减速;到5000个脉冲时;使电动机停止;同时剪切机动作将材料切断;并使脉冲计数复位..7分输入输出端子分配如下:3 通过调用子程序0来对HSC1进行编程;设置HSC1以方式11工作;其控制字SMB47设为16#F8;预设值SMD52为50..当计数值完成中断事件编号13时通过中断服务程序0写入新的当前值SMD5016#C8..6分西门子S7-200PLC试题1答案一.填空1.数据存储器数据目标2.HC+高速计数器号3.TON TOF TONR4.Q0.0 Q0.15.字寻址6.SM0.17.6 HSC3 和HSC58.当前值位值9.直流交流10.输入信号输出信号11.智能模块12.差分输入型二.选择1.D 2.D 3.D 4.A 5.A 6.C 7.D 8.A 9.C 10.D 11.D 12.C 13.D 14.A 15.A 16.C 17.B 18.A 19.B 20.B三.判断1.对2. 对3. 错4. 错5. 错6. 错7. 对8. 对9. 对10. 错11. 错12. 错13. 对14. 对15. 对16. 对17. 错18. 错19. 对20. 对四.综合题1.梯形图LAD2.34试题21.2.3.4.5.6.7.8.9.D 10.D 11.B 12.A 13.B 14.D 15.A1. 对2. 对3. 错4. 对5. 对6. 对7. 错8. 错9. 对10. 对11. 对12. 对13. 错14. 对15. 对16. 错17. 错18. 错19. 对20. 对四、综合题1. LD I0.2AN T31TON T31;1000LD T31LD Q0.1CTU C46;360LD C46O Q0.1 = Q0.1 2.3. LD I0.1O Q0.0 LPSAN I0.0 = Q0.0 LRDAN Q0.2 = Q0.1 LD Q0.1 TON T37;50 LD T37 O Q0.2 AN I0.0 = Q0.2 4.西门子S7-200PLC 试题3答案一、选择题20x 2=40分1 D2 B3 D 4A 5A 6 B 7A 8C 9B 10A 11A 12 B 13A 14C 15A16 B 17 D 18 D 19 D 20 B二、填空题每空1分;共20分1梯形图;语句表;功能块2用户程序;系统程序3存储器标识符;字节地址;位号4 TON;TOF;TONR5 166 SCR;SCRT;SCRE7 88中间存储器 9 SM0.0 10 高速计数器11 CP-243-1 IT三、判断题20X1=20分1对 2 对 3 错 4 错 5 错 6 对 7 错 8 错 9 错 10 对 11 错 12 错 13 对 14错 15Q0.0M0.0Q0.0I0.1 M0.0IN TONPT60T37 I0.0M0.0 M0.0I0.1T37 >=I 30Q0.1T37 Q0.2错 16 错 17 对 18 错 19 错 20 对四编程题3题共20分 123 LDN I0.0 LPS LD I0.1 O Q0.0 ALDAN I0.2 AN Q0.1 = Q0.0 LRDLD I0.2 O Q0.1M0.0IN TON PT60T37 I0.0M0.0 M0.0I0.1Q0.0 M0.0 Q0.0 I0.1T37 >=I 30 Q0.1 T37Q0.2 AAI0.0S0.0 S 1 S0.0 SCRSM0.0 Q0.0 I0.1S0.1 SCRT SCRE S0.1 SCR SM0.0 Q0.1 I0.2S0.2 SCRT SCREA S0.2 SCR SM0.0 Q0.2 I0.3S0.3 SCRTSCRE S0.3 SCR SM0.0Q0.0 R 3 SCREAALDAN I0.1AN Q0.0= Q0.1LPPLD I0.3O Q0.2ALD= Q0.2西门子S7-200PLC试题4答案一、选择题20x2=40分1 C2 A3 A 4C 5C 6 C 7B 8B 9D 10C 11C 12 A 13A 14C 15C 16C 17A 18A 19A 20D二填空题每空1分;共20分1 SM0.12 TON;TOF;TONR3中断服务程序的编号4上升/下降沿;高速计数器;高速脉冲串输出5 T32;T966 AC+累加器号7 子程序的标号;0-638 FOR;NEXT9四舍五入10 SEG ;字节;字节11 100三、判断题20X1=20分1错2 错3 对4 对5 对6 错7 错8 对9 对10 对11 对12 对13 对14错15 错16 错17 对18 对19 错20 错四、编程题3题共20分12I0.1R3Q0.0I0.3S1Q0.1R1Q0.2 I0.0S1Q0.0I0.2S1Q0.2R1Q0.0A3LD SM0.1 CALL 0 MEND SBR 0 LD SM0.0MOVB 16#F8;SMB47 HDEF 1;11MOVED 0;SMD48MOVED 50;SMD52 ATCH 0;13 HSC 1 RET INT 0LD SM0.0 MOVD 0;SMD48MOVB 16#C0;SMB47 HSC 1 RETILD I0.3 O Q0.2 ALD= Q0.2AI0.2 I0.0 Q0.0 EQ0.0 I0.1 Q0.1C20 < I 4900 CU CTU RPT5000C20I0.3C20 Q0.2 SM1.1Q0.1 M0.0 C20 Q0.0C20>= I 4900 I0.3C20 R 1A。
西门子STL间接寻址常问问题集

1.1如何获得指针或者间接寻址有关的信息?指针的类型包括16位指针、32位指针、Pointer(6Byte)和Any(10Byte)。
16位指针用于定时器、计数器、程序块的寻址;32位指针用于I/Q/M/L/数据块等存储器中位、字节、字以及双字的寻址,其中第0~2位表示位地址(0~7)、第3~18位为字节地址,其余位未定义;Pointer和Any一般应用在复杂数据类型(比如Date_and_Time /Array/String等)在FB、FC之间的传递。
而Any可以看做是对Pointer的延伸,因为由10Byte组成的Any中Byte4~Byte9就是一个Pointer。
了解指针的格式十分重要,为正确使用指针,应阅读如下内容:1、"SIMATIC Programming with STEP 7 V5.5" 05/2010 第27.3.4章参数类型2、文档:1008用于S7-300 和S7-400 的语句表(STL)编程3、文档:F0215,S7-300和S7-400寻址1.2为什么语句LAR1 P##PointerInput 在一个函数(FC)中是无效的,然而,同样的语句在一个功能块(FB)中是有效的?在FC被调用时,复杂数据类型例如指针是被复制到调用者的临时变量区中,在FC内部对此V区地址直接取址放入到地址寄存器AR1或AR2是不被编译器规则接受的(导致MC7寄存器信息过长),也就是说在FC内部通过P#进行地址寄存器取址仅能支持Temp临时变量。
因此如果需要在FC中操作指针等复杂输入输出变量地址需要使用累加器进行中转。
考虑到程序的一致性、遵守编译器规则和STL手册中LAR1指令说明,建议用户使用如下指令操作:L P##PointerInputLAR11.3 STEP 7 中哪些操作会覆盖DB/DI寄存器或者地址寄存器AR1/AR2的内容?下面说明了可能引起DB/DI寄存器或者地址寄存器AR1/AR2内容改变的一些操作:∙DB寄存器和AR1受到影响的操作1. 使用完整的DB路径(如L DB20.Val)或者调用FC/FB时使用DB块完整地址作为其参数,则DB寄存器内容被覆盖。
详解西门子间接寻址 (2)

详解西门子间接寻址【地址的概念】完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT 等)。
其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。
我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。
当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。
由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A其中的A是指令符,是A的操作数,也就是地址。
这个地址由两部分组成:Q:指的是映像输出区:就是这个映像输出区第二个字节的第0位。
由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:。
DB X 200 . 0其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。
这样,一个确切的地址组成,又可以写成:地址标识符+ 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。
给定指令操作的地址方法,就是寻址方法。
在谈间接寻址之前,我们简单的了解一下直接寻址。
所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A ,就是直接寻址,对于A这个指令来说,就是它要进行操作的地址。
这样看来,间接寻址就是间接的给出指令的确切操作数。
对,就是这个概念。
比如:A Q[MD100] ,A T[DBW100]。
程序语句中用方刮号[ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。
间接由此得名。
西门子的间接寻址方式计有两大类型:存储器间接寻址和寄存器间接寻址。
西门子S系列PLC试题及答案

西门子S7-200PLC试题⑴一、填空题(20分)I. _________________________________________________ S7-200系列PLC的数据存储区分两大部分,是_______________________________________ 与 ________ 。
2 •高速计数器HC的寻址格式是______ 。
3. S7-200型PLC的定时器包括_____________ ton 、tof、tonr 三种类型。
4. _____________________________ S7-200系列PLC的q0.0 与q0.1 两个输出端子,除正常使用外,还可利用PLC的高速输出功能产生PTO与PW输出。
5•定时器预设值PT采用的寻址方式为字寻址。
6•在PLC运行的第一个扫描周期为ON的特殊存储器位是sm0.1 ________ 。
7. _____________________________ S7-200系列PLC共有__6 个高速计数器,其中只有1种工作模式的是hsc3和hsc5 ______ 。
8. 定时器的两个变量是当前值和位值。
9. PLC中输入接口电路的类型有直流和交流两种。
10. I/O总点数是指输入信号和输出信号的数量。
II. 具有自己的CPUS系统的模块称为智能模块。
12. EM231模拟量输入模块的输入类型为差分输入型。
二、选择题(40分)1•下列那项属于双字寻址()。
A. QW1 B . V10 C . IB0 D . MD282•只能使用字寻址方式来存取信息的寄存器是()。
A. S B . I C . HC D . AI3. SM是哪个存储器的标识符。
()A.高速计数器B .累加器C .内部辅助寄存器D .特殊辅助寄存器4. CPU214型PLC本机I/O 点数为()。
A. 14/10 B . 8/16 C . 24/16 D . 14/165. CPU214型PLC有几个通讯端口()。
西门子300 编程多个问题解答

西门子300 编程多个问题解答西门子300 编程多个问题解答之七(131-150)131:S7-300/400 PLC支持哪些寻址方式?1)直接寻址1.直接地址:例如I0.0,Q1.7,PIW256,PQW512,MD20,T15,C16,DB1.DBB10,L10.0等2.符号寻址:例如qq,ww.aa等2)间接寻址1.存储器间接寻址:16位指针,例如OPN DB[MW2] 32位指针,例如A I[MD0]2.寄存器间接寻址:32位指针,例如A I[AR1,P#0.0],A [AR1,P#0.0]132:如何使用指针?指针用来指向一个地址。
使用这种寻址方式的优点在于可以在程序运行过程中实现变址。
指针用于存储器间接寻址程序中用于存储器间接寻址的语句包含一个指令、一个地址标识符、以及一个偏移量(偏移量必须在方括号内给出)。
下面给出一个双字格式的指针的例子:L P#8.7 把指针值装载到累加器1T I[MD2] 把指针值传送到MD2A I[MD2] 查询I8.7的信号状态= Q[MD2] 给输出位Q8.7赋值存储区域内部寻址及交叉寻址:程序中采用这些寻址方式的语句包含一个指令以及下列内容:地址标识符、地址寄存器标识符、偏移量。
地址寄存器(AR1、AR2)及偏移量必须写在方括号内。
存储区域内部寻址例程:指针不包含指示存储区域的信息:L P#8.7 把指针值装载到累加器1LAR1 把指针从累加器1装载到AR1A I[AR1,P#0.0] 查询I8.7的信号状态= Q[AR1,P#1.1] 给输出位Q10.0赋值偏移量0.0不起作用。
输出Q10.0 等于8.7 (AR1) 加偏移量1.1。
结果是10.0 ,而不是9.8。
存储区域交叉寻址例程:在存储区域交叉寻址中,指针中包含指示存储区域的信息(例子中为 I 和 Q)。
L P#I8.7 把指针值及存储区域标识装载到累加器1LAR1 把存储区域I 和地址8.7装载到AR1L P#Q8.7 把指针值和地址标识符装载到累加器1LAR2 把存储区域Q和地址8.7装载到AR2A [AR1,P#0.0] 查询输入位I8.7的信号状态= [AR2,P#1.1] 给输出位Q10.0赋值偏移量0.0不起作用。
详解西门子间接寻址(讲解+案例分析)

详解西门子间接寻址等级:弓剑手威望:0发贴:116经验:416财产:407魅力:411注册:2005-5-21【地址的概念】完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。
其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。
我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。
当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。
由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A Q2.0其中的A是指令符,Q2.0是A的操作数,也就是地址。
这个地址由两部分组成:Q:指的是映像输出区2.0:就是这个映像输出区第二个字节的第0位。
由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:DBX200.0。
DB X 200 . 0其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。
这样,一个确切的地址组成,又可以写成:地址标识符+ 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。
给定指令操作的地址方法,就是寻址方法。
在谈间接寻址之前,我们简单的了解一下直接寻址。
所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A Q2.0,就是直接寻址,对于A这个指令来说,Q2.0就是它要进行操作的地址。
这样看来,间接寻址就是间接的给出指令的确切操作数。
对,就是这个概念。
比如:A Q[MD100] ,A T[DBW100]。
程序语句中用方刮号[ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。
西门子S系列LC试题及答案

精选试题西门子S7-200PLC试题⑴一、填空题(20分)1. _____________________________________________________ S7-200系列PLC的数据存储区分两大部分,是 ____________________________________ 与_________ 。
2. ____________________________________ 高速计数器HC的寻址格式是o3.S7-200型PLC的定时器包括ton _____________ 、tof 、tonr ___ 三种类型。
4.S7-200系列PLC的q0.0 ___________ 与q0.1 __________ 两个输出端子,除正常使用外,还可利用PLC的高速输出功能产生PTO与PWM输出。
5.定时器预设值PT采用的寻址方式为字寻址。
6.在PLC运行的第一个扫描周期为ON的特殊存储器位是sm0.1 _________ 。
7. ________________________________S7-200系列PLC共有__6 个高速计数器,其中只有1种工作模式的是hsc3 禾口hsc5 ______ 。
8定时器的两个变量是当前值和位值。
9.PLC中输入接口电路的类型有直流和交流两种。
10.I/O总点数是指输入信号和输出信号的数量。
11.具有自己的CPU和系统的模块称为智能模块。
12.EM231模拟量输入模块的输入类型为差分输入型。
二、选择题(40分)1.下列那项属于双字寻址()。
A. QW1 B . V10 C . IB0 D . MD282.只能使用字寻址方式来存取信息的寄存器是()oA. S B . I C . HC D . AIA.高速计数器 B .累加器 C .内部辅助寄存器 D .特殊辅助寄存器4.CPU214型PLC本机I/O点数为()。
A. 14/10 B . 8/16 C . 24/16 D . 14/165.CPU214型PLC有几个通讯端口()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1如何获得指针或者间接寻址有关的信息?指针的类型包括16位指针、32位指针、Pointer(6Byte)和Any(10Byte)。
16位指针用于定时器、计数器、程序块的寻址;32位指针用于I/Q/M/L/数据块等存储器中位、字节、字以及双字的寻址,其中第0~2位表示位地址(0~7)、第3~18位为字节地址,其余位未定义;Pointer和Any一般应用在复杂数据类型(比如Date_and_Time /Array/String等)在FB、FC之间的传递。
而Any可以看做是对Pointer的延伸,因为由10Byte组成的Any中Byte4~Byte9就是一个Pointer。
了解指针的格式十分重要,为正确使用指针,应阅读如下内容:1、"SIMATIC Programming with STEP 7 V5.5" 05/2010 第27.3.4章参数类型2、文档:1008用于S7-300 和S7-400 的语句表(STL)编程3、文档:F0215,S7-300和S7-400寻址1.2为什么语句LAR1 P##PointerInput 在一个函数(FC)中是无效的,然而,同样的语句在一个功能块(FB)中是有效的?在FC被调用时,复杂数据类型例如指针是被复制到调用者的临时变量区中,在FC内部对此V区地址直接取址放入到地址寄存器AR1或AR2是不被编译器规则接受的(导致MC7寄存器信息过长),也就是说在FC内部通过P#进行地址寄存器取址仅能支持Temp临时变量。
因此如果需要在FC中操作指针等复杂输入输出变量地址需要使用累加器进行中转。
考虑到程序的一致性、遵守编译器规则和STL手册中LAR1指令说明,建议用户使用如下指令操作:L P##PointerInputLAR11.3 STEP 7 中哪些操作会覆盖DB/DI寄存器或者地址寄存器AR1/AR2的内容?下面说明了可能引起DB/DI寄存器或者地址寄存器AR1/AR2内容改变的一些操作:∙DB寄存器和AR1受到影响的操作1. 使用完整的DB路径(如L DB20.Val)或者调用FC/FB时使用DB块完整地址作为其参数,则DB寄存器内容被覆盖。
例如在OB1中调用FC1后,DB寄存器变成20。
OPN DB1Call FC1Input(bit):DB20.DBX0.2因此在编程的时候,OPN 指令打开数据块,通过DBX x.y的方式访问其中内容,但是如果在打开数据块后DB寄存器的内容被修改了,则DBX x.y的方式访问变量则会访问到错误的地址。
可以通过使用符号寻址的方式或者使用完整路径编程避免,当然重新使用OPN指令也是可以的。
2. 调用FC时使用string, array, structure ,UDT作为其形参或者调用FB时使用string, array, structure 或者UDT作为其in out形参,在FC/FB程序中访问这些地址则AR1寄存器内容被覆盖,因此当使用AR1进行间接寻址时需要注意AR1内容的正确性。
AR2地址寄存器和DI寄存器在FB中作为参数和静态变量的基址寻址使用。
AR2和DI如果被修改,会影响FB的参数访问,如果希望在FB中使用DI 寄存器或者地址寄存器AR2,必须预先保存它们中的内容,并在使用后恢复它们,例如:TAR2 #AR2_SAVE; //AR2寄存器状态保存到#AR2_SAVEL DINO;T #DB2_SAVE; //DI寄存器状态保存到#DB2_SAVEUser ProgramLAR2 #AR2_SAVE; //AR2寄存器恢复到使用前状态OPN DI [#DB2_SAVE]; //DI寄存器恢复到使用前状态1.4 如何得到多重背景FB中的变量在背景DB里的绝对偏移量呢?可以用下面的方法处理:TAR2 (得到多重背景FB在背景DB里的偏移地址)AD DW#16#00FFFFFF (屏蔽掉存储区ID,可参考32位指针格式)L P##Variable (得到变量在多重背景FB里的地址)+D (多重背景FB的偏移地址与变量在多重背景FB里地址相加,即得到实际绝对偏移量)LAR1上述语句就是就得到了变量在背景DB中的绝对偏移量,从而供后续程序处理。
1.5如何在程序中使用ANY 型指针?简要说明如下:L P##Input //指向存储地址指针Input首地址//这个参数是一个Any类型,P##Input指向参数Input的值所在地址,这就是指针的指针LAR1 //装载到地址寄存器AR1中。
L W [AR1,P#4.0] //打开DB块// 由Any类型结构知道Any类型的Byte4、Byte5存放的数据块号T #BLOCK_NOOPN DB [#BLOCK_NO] //如果是DB块,打开指定的DB块。
L W [AR1,P#2.0] //判断ANY指针中数据长度// Any类型的Byte2、Byte3是重复系数,如P#DB1.DBX0.0 Byte 8后面的Byte 8 _001:T #DATA_LEN //通常此处做loop循环!!L D [AR1,P#6.0] //找出需要计算数据区的开始地址// Any类型Byte6~Byte9是32位区域地址理解Pointer、Any的类型的数据结构,对于正确使用指针有很大帮助。
为正确使用指针,应仔细阅读如下内容:"SIMATIC Programming with STEP 7 V5.5" 05/2010 第27.3.4章参数类型如下的程序实现了SFC20的部分功能,可以作为Any使用的参考。
FUNCTION FC 1 : VOIDTITLE =VERSION : 0.1VAR_INPUTSRCBLK : ANY ;END_VARVAR_OUTPUTRETVAL : INT ;DSTBLK : ANY ;END_VARVAR_TEMPLOOP : INT ;BLOCK_NO_DB : WORD ;BLOCK_NO_DI : WORD ;SRC_ADD : DWORD ;DST_ADD : DWORD ;END_VARBEGINNETWORKTITLE =L P##SRCBLK; //读取输入any的首地址LAR1 ; //装载到ar1L P##DSTBLK; //读取输出any的首地址LAR2 ; //装载到ar2L W [AR1,P#4.0]; //打开DB块T #BLOCK_NO_DB;L W [AR2,P#4.0]; //打开DI块T #BLOCK_NO_DI;OPN DB [#BLOCK_NO_DB]; //打开DB块OPN DI [#BLOCK_NO_DI]; //打开DI块L D [AR1,P#6.0];T #SRC_ADD; //读取地址L D [AR2,P#6.0];T #DST_ADD; //读取地址L W [AR1,P#2.0]; //读取循环次数_001: T #LOOP;L DBB [#SRC_ADD];T DIB [#DST_ADD]; //赋值//地址偏移1个字节L P#1.0;L #SRC_ADD;+D ;T #SRC_ADD;L P#1.0;L #DST_ADD;+D ;T #DST_ADD;L #LOOP; //循环LOOP _001;END_FUNCTION1.6 当FC 或FB的输入参数类型为:BLOCK_DB, TIMER或者COUNTER,如何确定其编号?例1 :FB 块FB1 变量声明中定义了“ Timer” 类型的变量“ Time_1” ,在FB2 中调用FB1,将定时器“T5”传递给变量“Time_1”。
如图01 所示程序代码中数值 5 表示“T5”。
图01 FB中确定定时器编号在使用多重实例时,需要在图01 所示程序中增加以下代码:TAR2 //多重实例偏移地址LAR1 P##Time_1+AR1 //多重实例偏移地址与当前地址相加L W[AR1,P#0.0]T MW0例2 FCFC1 变量声明中定义了“ Timer” 类型的变量“ Time_1” ,在FC2 中调用FC1,将定时器“T8”传递给变量“ Time_1”。
如图02 所示程序代码中数值8 表示“T8”。
图02 FC中确定定时器编号“BLOCK_DB”类型参数在调用FC 时不可以直接传送给FC 。
如果在调用功能时试图使用此参数类型,将产生如下的错误消息:“非法的参数传输<参数名>” 。
“BLOCK_DB”类型参数仅在FB 被调用(从一个FB 或FC 中)时可被传送。
“BLOCK_DB”类型参数不可以在FC 被调用(从一个FB 或FC 中)时可被传送。
相关详细信息可参考STEP7 在线帮助中“合法的传输参数类型”。
然而,如果希望将BLOCK_DB 参数类型传送给FC,DB 块的编号可以通过基本数据类型(例如WORD)传送。
在下面的例子中,FB100 拥有一个“BLOCK_DB” 的输入参数类型。
为了在调用FC101 时将参数传送给它,“BLOCK_DB”中的DB 块编号被传送给WORD 临时变量(DB_No)。
当FC 被调用,数据块序号以一个WORD 参数类型替代BLOCK_DB 参数类型。
图03 FB中确定Block_DB编号如果FB 的接口参数能被定义成WORD 参数类型来传送DB 块编号,当FC 被调用时,此参数可以被直接传送给FC。
图04 FC中确定DB编号1.7 参数传递有何限制?当分配实际参数给形式参数时,可以指定绝对地址、符号名称或常数。
STEP 7 限制不同参数的分配。
例如,输出和输入/输出参数不能被分配常数值(因为输出或输入/输出参数的目的是改变其值)。
这些限定尤其适用于具有复杂数据类型的参数,这些参数既不能分配绝对地址也不能分配常数。
下表关明涉及分配给形式参数的实际参数数据类型的限制(--)和允许的分配(由符号显示)。
图05 允许的参数传递详细信息请参考手册中附录27.3.4.8节内容:455311071.8 如何传递any参数到其他程序块的参数中?下面的例子将说明如何为系统功能SFC50 “RD_LGADR” (读取模块逻辑地址)参数化ANY 指针。
例如对于功能块FB1,按下述步骤编程:1. 声明一个输入变量“test”和一个临时变量“test2”为ANY 类型(图05)。
2. 例如,把SFC50 的参数“PEADDR”传递给变量“test2”(图06)。
3. 通过判断ANY 指针“test”,能够传递临时变量“test2”的数据。
图06 any的临时变量传递语句L P##test 先把地址加载到Accu1,然后通过语句LAR1 把地址加载到地址寄存器AR1 (可简写为:LAR1 P##test)。