技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 关于pointer数据类型的使用问题

关于pointer数据类型的使用问题

刘玉蓉 发布于2014-10-24 17:38 10 0 标签:

想把P#200.0传递到FC块的IN形参中,请问FC块中应该怎么设置,怎么使用pointer类型的IN形参呢?还有怎么将pointer类型和any类型的数据传递到FC块中呢,请详细说明一下?后,如果同时打开了两个DB,怎么分别读出两个DB的数据?

佳答案

把P#200.0传递到FC块的IN形参中,操作比较简单,举例如下:在FC块的输入参数IN中建立一个IN1,Data Type(数据类型)为Pointer(指针),如果在主循环组织块OB1中调用FC1时,由于FC没有自己的背景数据块,因此FC的形式参数在调用时都必须赋予实际参数,在调用FC1时,形式参数IN1后面为红色问号,必须指定实际参数,否则程序不能完成,在IN1等号后面直接填写P#200.0即可,就把P#200.0传递到FC块的IN形参中
CALL  FC     1
IN1:=P#200.0 

将any类型的数据传递到FC块中也一样,如在FC2块中建立输入变量IN2,定义数据类型Data Type为Any(任意参数),同样在OB1中调用FC2,指定FC2中形式参数IN2的实际参数是传递数据块号如DB1,
CALL  FC     2
IN1:=DB1 
Pointer(指针)和Any(任意参数)都是参数数据类型,它们是用于FC或者FB的参数的数据类型,使用该参数,可以不确定类型和长度的数据通过参数传递给FC和FB。参数类型为程序提供了很高的灵活性,可以实现更通用的功能。一般:
Pointer:为6字节指针类型,传递DB块号和数据地址
Any:为10字节指针类型,传递DB块号、数据地址、数据数量以及数据类型
如果同时打开了两个DB,怎么分别读出两个DB的数据
关于如果同时打开了两个DB,怎么分别读出两个DB的数据,说明如下:在S7-300/400PLC中有两个数据块地址寄存器,数据块寄存器用于存储所有数据块的数据,多可以打开一个共享数据块DB和一个背景数据块DI。用OPEN DB指令打开一个共享数据块DB;用OPEN DI打开一个背景数据块DI。在STEP7中一般采用先打开后访问,即先打开那个数据块就读取该数据中的数据,注意不能交叉。在打开一个数据块的同时将关闭另一个数据块,如用指令OPN DB。。。打开共享数据块(自动关闭之前打开的共享数据块),或用指令OPN DI。。。打开一个背景数据块(自动关闭之前打开的背景数据块)。举例如下:
OPN DB1 //打开数据块DB1,作为共享数据块
L DBW2  //将DB1的数据字DBW2装入累加器1的低字中
 T MW0  //将累加器低字中的内容传送到存储字MW0;
T DBW4  //将累加器1低字中的内容传送到DB1的数据字DBW4中
OPN DB2 //打开数据块DB2,作为背景数据块
L DBB2  //将DB2的数据字节DBB2装入累加器1低字的低字节中
T DBB10 //将累加器1低字中低字节的内容传送到DB2的数据字节DBB10

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签