请教关于计数器,定时器设定值的相关问题

计数器,定时器设定值设置方法有三种:1常数直接设置2寄存器间接设定3用指针(*VD,*LD,*AC)间接设定。我想请教指针间接设定的用法,哪些地方要用到这个?请举例

最佳答案

用指针对S7--200存储区间接寻址:
 间接寻址是指用指针来访问存储区数据。指针以双字的形式存储其它存储区的地址。只能用V存储
 器、L存储器或者累加器寄存器(AC1、AC2、AC3)作为指针。要建立一个指针,必须以双字的形
 式,将需要间接寻址的存储器地址移动到指针中。指针也可以作为参数传递到子程序中。
 S7--200允许指针访问以下存储区: I、Q、V、M、S、AI、AQ、SMT(仅限于当前值)和C(仅限
 于当前值)。您无法用间接寻址的方式访问单独的位,也不能访问HC或者L存储区。
 要使用间接寻址,您应该用“&”符号加上要访问的存储区地址来建立一个指针。指令的输入操作数
 应该以“&”符号开头来表明是存储区的地址,而不是其内容将移动到指令的输出操作数(指针)
 中。
 当指令中的操作数是指针时,应该在操作数前面加上“*”号。如图4--11所示,输入*AC1指定AC1
 是一个指针,MOVW指令决定了指针指向的是一个字长的数据。在本例中,存储在VB200和VB201
 中的数值被移动到累加器AC0中。
 按照所访问的数据长度使用不同的指令:当访问字节时,使用增加指令使指针值加1;当访问字或
 者计数器、定时器的当前值时,用加法或者增加指令使指针值加2;当访问双字时,使用加法或者
 增加指令使指针值加4。
 本例中用LD10作为VB0的地址指针。然后可以利用VD1004中存储的地址偏移量来改变指针值。经过改变后,LD10指向
 V区中的另外一个地址(VB0+偏移量)。然后将LD10指向的V区地址中存储的数值复制到VB1900中。通过改变
 VD1004中的数值,您可以访问V存储器中的任意单元
 Network1 /如何利用偏移量访问
 //V存储器中的任意单元:
 //
 //1. 将V区的起始地址装载到指针中。
 //2. 将偏移量加到指针上。
 //3. 将V存储器中的数值复制到
 //VB1900中。
 //
 LD SM0.0
 MOVD &VB0, LD10
 +D VD1004, LD10
 MOVB *LD10, VB1900

 用指针访问数据表的例子程序
 本例中用LD14作为指向一个配方表的指针,配方表的起始地址为VB100。在本例中VW1008用来存储一个指定的配方在
 表中的索引号。如果每条配方的长度为50个字节,则用这个索引号乘以50就可以得到这条配方起始地址的偏移量。用指
 针加上偏移量,您就可以访问表中的每一条配方。在本例中,配方被复制到从VB1500开始的50个字节中。
 Network1 //如何从配方表中传递一条配方:
 // -- 每条配方的长度为50个字节。
 // -- 索引值(VW1008)指定装载哪一条配方。
 //
 //1. 建立一个指针指向配方表的起始地址。
 //2. 将配方的索引值转换为双字。
 //3. 乘以每条配方的长度算出偏移量。
 //4. 将偏移量加到指针上。
 //5. 将配方传递至VB1500到VB1549中。
 LD SM0.0
 MOVD &VB100, LD14
 ITD VW1008, LD18
 *D +50, LD18
 +D LD18, LD14
 BMB *LD14, VB1500, 50

提问者对于答案的评价:
OK

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc356796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

  • 多S7-200配置

    我有一个工程,距离机房200M处需要采集5个模拟量和几个开关量,想通过200做通信到机房。机房中有30个点的开关量和20个模拟量采集,但没有的调节输出,仅是逻辑控制,所以也想采用2…

    SIMATIC S7-200 2020年11月5日
  • 2S秒冲带参数子程序的制作

    输入条件OFF变ON上升沿后,输出一个2秒的ON后OFF。如果每个同样效果的输出,都用图片(普通模式2秒脉冲)太浪费定时器,我制作了一个子程序,感觉好像如果两个程序同时工作,这个子…

    2021年7月5日
  • S7-200 CPU224电源

    把226的程序提出来 再把输入和输出修改了一下放到224里面 上电运行了大概一小时 电源板坏了 请问电源板坏和程序有关系吗? 问题补充:把2…

    SIMATIC S7-200 2020年11月1日
  • S7-200 产生年代

    请问s7-200的CPU21X 系列是哪年生产出来的,CPU22X系列是何时生产出来的,谢谢 最佳答案 1994年 S7-200 PLC 进…

    SIMATIC S7-200 2020年10月31日
  • Smart700IEV3报警测试

    224XP的1口与触摸屏MPI通讯,波特率187500。0口与台达变频器MODBUS通讯。波特率19200。现在变频器通讯正常,触摸屏连接不上。问了西门子官网工程师叫我做个报警,看…

    2017年6月6日
  • 通讯求教

    各位大侠:我现用了1台226与1只带485接口的温控仪进行modbus通讯,226采用modbus主站指令编程,根据仪表说明书,站地址设为2,波特率为9600,无奇偶,用1只总线连…

    SIMATIC S7-200 2020年11月1日
  • s7-200时钟指令

    200的时钟指令怎么用?我要做一个程序,要求是在每个月的某一天输出一个信号,这个程序怎样编,各位能不能说的详细点? 最佳答案 LD    &…

    SIMATIC S7-200 2021年7月5日
  • s7-200数据块的存储

    使用Step 7-Micro/Win Sp6, CPU 224. 使用这个数据块来预置一些存储器的初始变量,譬如: //…

    SIMATIC S7-200 2021年7月5日
  • 如何让模拟量以一定的斜率增大

    S7200中,如何让模拟量输出以一定的斜率不断增大,开环控制,不是闭环控制,只要能产生斜坡就行 最佳答案 这个简单 LD    &…

    SIMATIC S7-200 2020年11月5日
  • 组态王读取S1200DB块字符串变量

    如图片所示,组态王读取PLC字符串变量,确认组态王中字符串变量未保存参数未保存数值,但是PLC通过触摸屏对字符串赋0后,PLC监控变量为空,但是组态王画面依然显示原字符串变量名称,…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论