STEP7指令实用.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.指令操作数指令操作数由操作标示符和参数组成。操作标识符由主标识符和辅标识符组成。主标识符有:I(输入过程影像寄存器)、Q(输出过程映像寄存器)、M(位寄存器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)、L(本地数据寄存器)辅助标识符有:X(位)、B(字节)、W(字或2B)、D(2DW或4B)详细介绍可以参看下图: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_0111T [MD2] ?//把指针值送到MD2A 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)累

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档