在step7中条用sfb48后,怎么样才能知道读到的是哪个点的频率呢?
请各路大侠不吝赐教!
最佳答案
使用S7 CPU 31xC的内置功能“频率测量”
隐藏订货号显示订货号订货号:
6ES7312-5BD00-0AB0 SIMATIC S7-300, CPU 312C
6ES7312-5BD01-0AB0 CPU312C, 10DI, 6DO, 16KB
6ES7313-5BE00-0AB0 SIMATIC S7-300, CPU 313C
6ES7313-5BE01-0AB0 CPU313C, 16DO, 4AI, 2AO, 32KB
6ES7313-6BE00-0AB0 SIMATIC S7-300, CPU 313C-2 PTP
6ES7313-6BE01-0AB0 CPU313C-2 PTP, 16DI/16DO, 32KB
6ES7313-6CE00-0AB0 SIMATIC S7-300, CPU 313C-2DP
6ES7313-6CE01-0AB0 CPU313C-2 DP, 16DI/16DO, 32KB
6ES7314-6BF00-0AB0 SIMATIC S7-300, CPU 314C-2 PTP
6ES7314-6BF01-0AB0 SIMATIC S7-300, CPU 314C-2 PTP
6ES7314-6BF02-0AB0 CPU314C-2PTP, 24DI, 16DO, 4AI, 2AA
6ES7314-6CF00-0AB0 SIMATIC S7-300, CPU 314C-2DP
6ES7314-6CF01-0AB0 CPU314C-2DP, 24DI, 16DO, 4AI, 2AO
6ES7314-6CF02-0AB0 CPU314C-2DP, 24DI, 16DO, 4AI, 2AA
问题:
有关于使用S7 CPU 31xC的内置频率计的示例程序吗?
解答:
S7 CPU 31xC的内置频率计是由系统功能块SFB 48控制的。除了控制频率计的输入外,用户也可以通过SFB 48参数化频率计(例如,积分时间、上限/下限)或查询参数化的数据。
频率计通过作业(“JOB_ID”输入中的作业号)和相关值(“JOB_VAL”输入中的参数)进行参数化,以此激活作业。只有当上一个作业完成后,才能设置新作业或新参数。而作业的完成情况将在状态寄存器上加以显示。
此处可用的功能块(FB 2)使得通过SFB 48给频率计分配参数变得更容易。通过触发位开始写和读作业,此处所需的“JOB_ID”由 程序提供给SFB 48。当作业完成时,触发位会自动重设。
功能块内部调用SFB 48。调用SFB 48所需的参数可以从FB 2的调用参数得到。
为FB 2提供下列调用接口: 输入参数
类型
说明
Modul_adress WORD 模块的I/O地址,十六进制,如同在HW Configuration中的设置(缺省值:W #16#300)
Channel_number INT
使用通道的数目。
可用的通道数目由CPU决定。
SW_Gate BOOL
控制软件门。
Enable_output BOOL
激活手动控制的输出
Control_output BOOL
直接控制数字输出
输出参数 类型
说明
STS_Gate BOOL 内部门的状态显示
STS_Up BOOL
向前计数
STS_Down BOOL
向后计数
STS_Hardwaregate BOOL
硬件门的状态显示
STS_Output BOOL
数字输出的状态显示
STS_Measurement BOOL
测量的状态显示
STS_Overflow BOOL
发生上溢
STS_Underflow BOOL
发生下溢
Frequency_value BOOL
当前频率值
Countervalue DINT
当前计数器值,每次打开内部门时,从“0”值处重启。
Job_error BOOL
显示读或写作业中的错误
Error_number WORD
作业出错号(对Job_error = “1”)
输入/输出参数 类型
说明
Reset_status BOOL 重设下限、上限和测量的状态位。
WR_Lower_limit BOOL
作业触发“写下限”。
WR_Upper_limit BOOL
作业触发“写上限”。
WR_Integration_time BOOL
作业触发“写积分时间”。
WR_Job_value DINT
相关写作业的值。
RD_Lower_limit BOOL
作业触发“读当前下限”。
RD_Upper_Limit BOOL
作业触发“读当前上限”。
RD_Integration_time BOOL
作业触发“读当前积分时间”。
RD_Read_value DINT
相关写作业的返回值。
表1:FB2的接口说明
使用读写作业:
在相关的触发位(WR_)由“1”触发写作业。已激活作业的要写入的值在“ WR_Job_value”输入中传送。一旦写作业完成,将重设触发位,并且作业值为“0”。一次只能有一个写作业。
读作业的处理方法与写作业相同。 触发作业的置位和结束作业的复位都是通过块来完成的。 读入的值在“RD_Read_value”参数中输出。
返回值组态为输入/输出参数,使得该值也可以由调用程序重置为“0”。
重设状态位:
“Reset_Status”参数上的“1”用于重设状态显示(例如:上溢、下溢)。一旦重设了所有的状态位,块也将重设激活位。
错误处理:
如果在读写作业期间出错,将重设触发位,并且设置“Job_error”位。在“Error number”输出端显示出错代码,以用于进一步的诊断。这依赖于操作模式。出错代码与由SFB 48输出的出错代码相同。出错代码的含义可以从在线帮助或下面提到的手册中找到。& amp; amp; lt; br> 如果正确地完成作业,将会重设作业出错和出错代码。
更多信息/手册:
“S7-300 Automation System CPU 31xC Technological Functions”是文件包中的一部分,
订货号:6ES7 398-8FA10-8AA,条目号:12429336。
下载:
附上的下载链接包含一个STEP 7项目,它 带有用于调用SFB 48的FB1功能块。采用STL语言对块进行了编程,并 进行了注释。然而,m 对标准应用没有必要改变程序代码。可 以在LAD/FBD/STL程序中直接使用该块。另外,用 户需做的事情只是从标准库中加载块SFB 48。
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=18475558
提问者对于答案的评价:
??
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc352394.html