在西门子plc200中,程序是先运行主程序的,在主程序里如果遇到调用子程序的指令时,如果该指令被激活那么就跳到子程序运行里面的程序,主程序停止运行,在plc300中,一般OB1为主程序,其他的都可以认为子程序,在主程序OB1中调用各种FC,SFC,还有OB块等等
你可以在局部程序块中说明一些变量,这种变量被称为局部变量,它们只能在局部程序块的开始部分说明,并且只在说明它的局部程序块中有效。
如果局部变量与局部程序块以外的变量重名,则前者优先于后者。
下面是一个使用局部程序块的例子:
#include <stdioh>
void main(void);
void main()
{
/ Begin local block for function main() /
int test_ var = 10;
printf("Test variable before the if statement: %d\n", test_var);
if (test_var>5)
{
/ Begin local block for "if" statement /
int test_ var = 5;
printf("Test variable within the if statement: %d\n",
test_var);
{
/ Begin independent local block (not tied to
any function or keyword) /
int test_var = 0;
printf (
"Test variable within the independent local block: %d\n",
test_var)
}
/ End independent local block /
printf ("Test variable after the if statement: %d\n", test_var);
}
1
declare
avg_sal number;
max_sal number;
i integer;
begin
i:=0;
loop
select avg(sal),max(sal) into avg_sal,max_sal from emp;
if avg_sal<=5000 and max_sal<=6000 then
update emp set sal=sal+100;
i:=i+1;
else
exit;
end if;
end loop;
commit;
dbms_outputput_line('共增加工资:'||to_char(i100));
end;
2
declare
cursor c1 is select empno,ename,sal from emp;
begin
for acct in c1 loop
dbms_outputput_line('员工号:'||acctempno||' 员工姓名:'||acctename||' 工资:'||acctsal);
end loop;
end;
3
create or replace procedure comSalary
as
cursor c1 is
select deptno,avg(sal) avg1 from emp group by deptno;
begin
for acct in c1 loop
if acctavg1 > 3500 then
dbms_outputput_line('部门:'||acctdeptno||' 工资:'||acctavg1);
end if;
end loop;
end;
以上就是关于西门子 plc主程序块和子程序块有什么区别全部的内容,包括:西门子 plc主程序块和子程序块有什么区别、什么是C语言局部程序块(local block)、关于oracle的pl程序块。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)