西门子S7-300程序中语句表每一句都是什么意思,求大神帮忙! 西门子S7-300 程序中语句表每一句都是什么意思,求大神帮...

作者&投稿:播疯 (若有异议请与网页底部的电邮联系)
SET //将RLO(逻辑运算结果保存位)位置1,
SAVE //将RLO结果保存到BR位,以保证下面的程序可以执行。
= L 0.1 //将RLO位保存到L0.1临时存储区位
L #IN3 //装载#IN3这个变量到ACC1
SAVE //将RLO结果保存到BR位,以保证下面的程序可以执行。
ITD //将ACC 1中的数值转换为双整数
DTR //将ACC1的双整数转为浮点数,最终#IN3变成了浮点数,保存在了ACC1
SAVE //将RLO结果保存到BR位
L 1.000000e+001 //装载10.0到ACC2
/R //ACC2除以ACC1,也就是10.0除以#IN3变量,结果保存在ACC1
JO M001 //如果有溢出那么跳转到M001
JU M002 //如果没有溢出那么跳转到M002
M001: CLR //清除RLO位
= L 0.1//RLO结果暂存到L0.1临时存储区
M002: T #IO9 //将ACC1的数据传送给#IO9变量
CLR //清除RLO位
A #STAT65 //检查#STAT65是否为1
NOT //对RLO取反
A #IN0 //检查#IN0是否为1
JCN M003 //如果以上逻辑运算结果为0跳转到M003
L #IO9 //如果逻辑运算结果为1,那么装载#IO9
T #STAT66 //将#IO9传送给#STAT66
L #IO9 //装载#IO9
T #IO10 //将#IO9传送给#IO10
L 0.000000e+000 //装载0.0
T #STAT67 //创送0.0给#STAT67
M003: CLR //清零RLO

这是一个子程序, 具体要结合整体来看,这是其中几条,后面的类推。

SET   

SAVE         //一般用在子程序的开头,就是保存BR位,你可以简单理解为梯形图的EO

L     0         //把 0  赋给#TEMP1 , #TEMP1 可以在子程序资源里建立

T     #TEMP1   

L     #IN0          // 把外部参数INO 给#TEMP2, 这个应该是这个子程序的一个输入参数

T     #TEMP2

L     0            //比较INO(#TEMP2)  和 0  

<D    

JC    M001   //若 #TEMP2  小于 0 则跳转到下面的MOO1 开始执行

TAK               //互换累加器1和2的值, 这里就是把#TEMP2 和 0的在累加器中的位置互换

L     L#9990000 //执行了上步后, 这里ACU1 装载一个长型整数999900000,#TEMP2 自动填入ACU2 , 原来ACU2 里的0 被自动剔除

<=D               //比较ACU2 和ACU1

JC    M002     //  若 #TEMP2  小于等于9990000 则跳转到下面的MOO12开始执行



西门子S7-300程序中语句表每一句都是什么意思?~

这是一个子程序, 具体要结合整体来看,这是其中几条,后面的类推。
SET
SAVE //一般用在子程序的开头,就是保存BR位,你可以简单理解为梯形图的EO
L 0 //把 0 赋给#TEMP1 , #TEMP1 可以在子程序资源里建立
T #TEMP1
L #IN0 // 把外部参数INO 给#TEMP2, 这个应该是这个子程序的一个输入参数
T #TEMP2
L 0 //比较INO(#TEMP2) 和 0
<D
JC M001 //若 #TEMP2 小于 0 则跳转到下面的MOO1 开始执行
TAK //互换累加器1和2的值, 这里就是把#TEMP2 和 0的在累加器中的位置互换
L L#9990000 //执行了上步后, 这里ACU1 装载一个长型整数999900000,#TEMP2 自动填入ACU2 , 原来ACU2 里的0 被自动剔除
<=D //比较ACU2 和ACU1
JC M002 // 若 #TEMP2 小于等于9990000 则跳转到下面的MOO12开始执行

你这个是编译之后的程序,没有注释,无法解释其含义。
只能看明白作了哪些数据处理,如:
JU M005// 程序无条件跳转到M005标记段落继续执行
M006: L 0.000000e+000// 标记M006, 装载0.0到累加器1
T #OUT34//将累加器1中的数据0.0传送到输出接口OUT34
其他指令请参考:S7-300和S7-400(STL)编程参考手册

西门子S7-300中RLO边沿检测指令
答:NEG (地址下降沿检测)比较<地址1>的信号状态与前一次扫描的信号状态(存储在<地址2>中)。如果当前RLO状态为"0"且其前一状态为"1"(检测到上升沿),执行此指令后RLO位将是"1"。S7-300是德国西门子公司生产的可编程序控制器(PLC)系列产品之一。其模块化结构、易于实现分布式的配置以及性价比高、电磁...

西门子300plc中,怎么用move指令使m0.0,m0.3置位
答:被寻址位的信号状态被置1或清0;若RLO是0,则被寻址位的信号保持原状态不变。对于置位操作,一旦RLO为1,则被寻址信号(输出信号)状态置1,即使RLO又变为0,输出仍保持为1;对于复位操作,一旦RLO为1,则被寻址信号(输出信号)状态置0,即使RLO又变为0,输出保持为0。语句表STL表示的置位/复位...

西门子PLC程序语句表的运算含义
答:T DBD [ AR1 , P#20.0 ] //将3925送入DBD120中,L #temp3 L DINT#640 +D T #temp3 //Temp3+640 +AR1 P#100.0 //地址寄存器的值+100,也就是200.0 L #temp2 LOOP ABL_1 //执行循环 程序的作用是将数据填入DB中,第一次DBD100~120,第二次DBD2...

西门子S7-300/400程序中怎样查找数据
答:利用变量监控表,操作是,你先打开管理器,在blocks中,使用命令insert s7block variable table.,在这个变量表中,你可以用不同的触发频率和定义出发点,来控制变量什么时候被监视或者赋予新值

西门子PLC S7-200和S7-300编程有有什么不同?
答:有什么不同:1.编程语言不一样,S7-200系列的编程语言有三种:语句表(STL)、梯形图(LAD)、功能块图(FBD);S7-300系列的除了这三种外,还有结构化控制语言(SCL)和图形语言(S7 graph),其中SCL就是一种高级语言,高级语言可以更加方便的解决客户的专有问题,提高了程序执行效率,缩短了程序执行...

S7-300中查找一个数据块中300个实数的最大值,最小值,平均值怎么写程序...
答:double n,max4min,sum,average;int i;sum=0.0;average=0.0;cin&gt;&gt;n;max=n;min=n;sum+=n;for(i=1; i&lt;6; i++){cin&gt;&gt;n;sum+=n;if(max&lt;n)max=n;if(min&gt;n)min=n;}sum-=max;sum-=min;average=sum...

怎样用s7-300的shl_dw编写移位寄存器功能
答:在梯形图中,周期性字节传送指令以功能框的形式编程,指令名称为MOV_B。当允 许输入EN有效时,将一个无符号的单字节数据IN传送到0UT中。影响允许输出EN0正常工作的出错条件为:SM4.3(运行时问),0006(问接寻址)。在语句表中,周期性字节传送指令MOVB的指令格式为:M www.hnnedu.com OVB IN,...

西门子S7-300/400PLC的编程软件中,符号表的用处,和其导出导入的功能的作...
答:符号表的用途在于给IO变量或数据定义一个名称,方便在编写程序及阅读程序的时候理解其含义。比如I0.0,定义为P0101_RUN,注释为提升泵运行信号,可以按自己熟悉的命名格式。其导入导出可以用EXCEL或其他工具快速定义符号。变量表是用来监控相应变量在线状态的,可以根据不同的调试要求,生成多个变量表。变量...

西门子S7-300PLC中功能的局域变量表中的IN_OUT表示什么意思啊? 与IN...
答:IN_OUT:输入输出类型,可以写输入也可以写输出 。IN:只能输入。OUT:只能输出。在给OUT参数赋值之前,它的值是不定的,必须先赋值后使用。退出FC后,IN_OUT的值用它的实参保存,下次调用时IN_OUT的值是确定的。IN_OUT有点类似于FB的静态变量。

西门子s7-300PLC上载程序怎样加符号表及更新DB内的符号?
答:新建一个硬件组态,用你原来的块内文件替换新建块文件,右键点击I/O点,编辑符号,输入你的注释就可以了,保存就可以了。