怎样调用功能块和功能并对其中的参数进行设置??
刘玉蓉
发布于2014-10-24 17:38
1
0
标签:
本人想编一个程序:通过程序0B1调用功能块和功能并在其中实现具体的功能,但不知道怎样进行参数设置和具体的操作步骤。哪位能解答一下啊?
佳答案
一般使用调用指令(CALL)来调用功能块(FB)、功能(FC)、系统功能块(SFB)或系统功能(SFC),或调用西门子预先编好的其他标准块。在调用FB时,由于它有自己的背景数据块,所有的参数在其背景数据块中有对应的存储位置,因此在调用FB时,只需指定其背景数据块,而FB中的形式参数位置均为黑点,可根据需要选择是否填写,所以应提供与它们配套的背景数据块(Instance DB),你也可以在调用FB时,仅需填写背景数据块编号,自动产生新的背景数据块,比较简单,举例如下:如果在OB1中调用SFB4(通过对输入信号(参数IN)延时一个上升沿(PT)),该系统功能块一般用在如果CPU提供的定时器不够使用的问题时,可以利用PLC操作系统提供的软定时器,如SFB4(TON)就是软定时器,此功能块需要一个背景数据块;
如果你在插入SFB4时,不填写背景数据块,指令“CALL SFB4,---”为红色,你是无法调用的,必须在“CALL SFB4,”指令后如填写DB4,这时出现警告对话框“LAD/SFL/FBD(30:150”,提示“The instance data block DB4 does not exist, do you want to generate it”(背景数据块不存在,你要建立此块吗“,回答”Yes(是),这时在调用的块信息如下:
CALL “TON” //调用SFB4,下面的指令是根据你在FB中编写的程序指定生成的,无需填写
In:= //开始输入,它是形式参数,实际参数保存在背景数据块DB4中(默认初始值为False)
PT:= //输入沿时一个上升沿,它是形式参数,实际参数保存在背景数据块DB4中(默认T#0MS)
Q:= //时间状态,它是形式参数,实际参数保存在背景数据块DB4中(默认False)
ET:= //终止时间(默认T#0MS)
再如使用背景数据块DB1调用FB1,程序如下:
CALL FB1,DB1 //调用FB1,其背景数据块DB1(实际在OB1中调用时如果没有DB1,只需在CALL FB1后填写DB1即可),在编好FB1程序时,调用时下面指令自动产生,无需输入;
MAX :=MW10 //MAX为FB1定义的参数,将MW10的值赋予MAX;
MIN :=MW20 // MIN为FB1定义的参数,将MW20的值赋予MIN;
POWER_ON:=I0.0 //将I0.0赋予FB1参数POWER_ON;
POWER_OFF :=I0.1 //将I0.1赋予FB1参数POWER_OFF
而调用功能FC时,,则不需要背景数据块,在调用带参数的FC时,参数位置均为红色问号,必须指定实际参数值,否则程序不能完成,不能保存下载,举例如下:
CALL FC6 //调用FC6 ,必须在FC6中编写的左边形式参数的右边指定实际参数的位置地址,不像FB自动产生
形式参数 实际参数
NO OF TOOL:= MW100
TIMEOUT:= MW110
FOUND:= Q0.1
ERROR:= Q100.0