PIW [AR1,P#0.0]这句话是什么意思

作者&投稿:濮丽 (若有异议请与网页底部的电邮联系)
S7 300指令是什么意思?L W[AR1,P#0.0]指令是什么意思?~

上面的程序要想看懂的话必须得了解西门子程序的寻址方法,具体是做什么得结合你的各个变量的具体含义才能知道是什么含义。上面用到了直接寻址和间接寻址的方法。不是一两句能说清楚的。L W[AR1,P#0.0]这个个间接寻址中的交叉寻址,其中W指的是你的字符宽度,W代表的是字,就是这个指针的指向宽度为2个字节,AR1为你事先装载进去的指针指向起始地址,例如
L [MW20]
LAR1
这个就是在位存储区中的第20个字的位置,字符宽度为2两个字节。装载到地址寄存器1中。
L W[AR1,P#0.0]这就是以AR1的地址为起始地址偏移0.0个偏移量。这样就找到了你需要使用的地址了。现在国内的程序员对间接寻址的使用比较少,主要是直接寻址。这样的间接寻址就相当于C语言中的指针~!使用比较灵活,如果使用不当的话就会使PLC死机的状况。但是如果使用的好的话可以简便程序结构,并且便于程序的标准化~!如果还有什么问题可以继续留言~!

装载当前背景DB块中(地址AR1的值加上70)所对应的双字的数据到累加器1.比如当前背景DB为DB0,AR1的地址为0.0,当 L DID[AR1,P#70.0]后,累加器1的值即为DB0.DBD70所对应的值。

例如:语句L PIW [AR1, P#0.0] 表示将PIW模拟量的值传送到ACCU1中,具体传哪个值由AR1+P#0.0决定。如果AR1=288,那么就把PIW288传入ACCU1中。P#0.0就是0吧。

举个例子,如果AR1是420,那么,PIW[AR1,P#0.0]的意思就是:从AR1值偏移0.0个变量,就是值PIW420


达尔罕茂明安联合旗15825265107: PIW [AR1,P#0.0]这句话是什么意思 -
郸胥永新: 例如:语句L PIW [AR1, P#0.0] 表示将PIW模拟量的值传送到ACCU1中,具体传哪个值由AR1+P#0.0决定.如果AR1=288,那么就把PIW288传入ACCU1中.P#0.0就是0吧.

达尔罕茂明安联合旗15825265107: 请高手帮翻译西门子PLC累加器和间接寻址 -
郸胥永新: OPN DB 1 //打开DB1,可以对DB1进行操作 L P#256.0 //初始化读指针,初始的地址是256 LAR1 //将累加器1的数据填充到地址寄存器1 L P#0.0 //初始化写寄存器,初始的地址是0.0 LAR2 //将地址数据填充到地址寄存器2 L 20 //将20这个数据装载...

达尔罕茂明安联合旗15825265107: 在s7 - 300编程状态字编程时可以多次使用状态字吗 -
郸胥永新: 可以的,状态字是学习S7-300/400的难点之一,具体操作时需要注意:S7-200等PLC用LD和LDI指令来表示电路块开始的常开触点和常闭触点.S7-300/400没有这样的指令,它是用首次检测位/FC的状态为0来表示一个梯形逻辑程序段的开始,...

达尔罕茂明安联合旗15825265107: 求助:关于指针和一些命令
郸胥永新: W[AR1,P#0.0]没有这种写法吧,应该是MW[AR1,P#0.0]不是的,也是有W[AR1,P#0.0]这种写法的,西门子的指针分区间内寻址,和区域间寻址.比如LAR1P#M20.0LW[AR1,P#0.0]或者LAR1P#20.0LMW[AR1,P#0.0]上面两种都表示MW20

达尔罕茂明安联合旗15825265107: 为什么PLC(西门子) P##无法编写 -
郸胥永新: |P|是一个上升沿指令,在一个变量(如I0.0)的触点后插入该指令,则该触点在程序中只在其上升沿也就是在其从断到通时接通一个扫描周期.至于后果,根据你的程序不同而定, 举个例子:现在你要想实现一个加法运算,要求是每按下一次按钮时,对VW100里面的数+1.把该按钮接到I0.0上,如果你程序中不在I0.0的触点后串一个|P|指令,则当按钮按下时,PLC会在每个扫描周期都对VW100里面的数+1,就是说如果按钮一次按下的时间有三个扫描周期,那VW100里面的数就+3.如果你用了|P|指令,不管按钮按下多少时间,都能保证按钮每次按下VW100里面的内容只+1.

达尔罕茂明安联合旗15825265107: 这几段PLC程序能否帮我解释一下
郸胥永新: 装载DB号;传到本里W0里;打开这个DB;再装载其中的DBW_ADDR;左移三位; 后面的都是类似的了…….

达尔罕茂明安联合旗15825265107: 如何在step7中实现间接寻址 -
郸胥永新: OPN DB 50LAR1 P#0.0 //置AR1的初始地址=P#0.0 L 4 // 共分4台从站循环采集next: T #times L PID [AR1,P#336.0] //传送数据送专用数据区 T DBD [AR1,P#96.0] L PID [AR1,P#340.0] T DBD [AR1,P#100.0] L PID [AR1,P#344.0] T DBD [AR1,P#...

达尔罕茂明安联合旗15825265107: 在plc编程语句中,LAR1 P#10.0 -
郸胥永新: 首先要明白这段程序的意思,将10传给地址寄存器1,装载mw后面是间接寻址,AR1里面现在是10,偏移200,那就mw[AR1,P#200.0]就等于MW210.

达尔罕茂明安联合旗15825265107: 西门子PLC编程,下面STL语言用SCL语言怎么实现 -
郸胥永新: stl有点类似汇编语言,和机器码对应,无论哪种语言写的plc程序都可以转换成stl查看,所以掌握基本的stl指令和语法是很有帮助的.另外stl直接操作寄存器,实现同样功能时可以减少运算量和寄存器调用次数,并且只关心数据类型的长度(例如不区分int和word),减少了数据类型转换,总的来说执行效率高,但实现复杂运算和逻辑时编程繁琐.scl类似于高级语言pascal、c之类,可以通过简单的语句实现复杂的功能,逻辑清晰,在复杂数据类型的处理上也非常方便,虽然理论上执行效率比stl低,但实际一般不会有明显的影响.另外,在同一个fc或fb中,stl可以和梯形图混合使用,而scl编写的fc或fb不能混合其他语言

达尔罕茂明安联合旗15825265107: s7 - 200plc 编写中断程序,中断程序能执行但是不能让主程序停止,求救 -
郸胥永新: 你把要停止的程序写在子程序,调用子程序就可以了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网