如果用s7-300 plc 通过dp控制变频器,用sfc1415发送和接收数据。db块的数据应该怎么建立?以什么为参考

如果用s7-300 plc 通过dp控制变频器,用sfc1415发送和接收数据。db块的数据应该怎么建立?以什么为参考,第1张

请参见固件手册中现场总线接口一章。
比如在标准软件中SFC14读到的第一个字是状态字,第二个字是速度(或频率)。
SFC15写入的第一个字是控制字,第二个字是速度给定,第三个字是转矩给定。
其他字的含义由51组,92组和90组参数指定。
所以DB块也按照这个定义建立变量,数量与实际使用的字的数量相同,类型是字。

该手册没有中文,网上能下到的中文手册是系统功能手册,也就是介绍SFB,SFC的,和标准功能手册是不同的。既然已经说过了,该手册就在step7软件的安装目录中,不过最快的方法还是选择F1查看帮助。

编号 短名称 功能
SFC 0 SET_CLK 设置系统时钟
SFC 1 READ_CLK 读系统时钟
SFC 2 SET_RTM 设置运行系统计时器
SFC 3 CTRL_RTM 启动/停止运行系统计时器
SFC 4 READ_RTM 读运行系统计时器
SFC 5 GADR_LGC 查询通道的逻辑地址
SFC 6 RD_SINFO 读OB的启动信息
SFC 7 DP_PRAL 在DP主站上触发硬件中断
SFC 9 EN_MSG 启用与块相关、符号相关及组状态消息
SFC 10 DIS_MSG 禁用与块相关、符号相关及组状态消息
SFC 11 DPSYC_FR 同步DP从站组
SFC 12 D_ACT_DP 取消激活和激活DP从站
SFC 13 DPNRM_DG 读DP从站的诊断数据(从站诊断)
SFC 14 DPRD_DAT 从标准DP从站读取一致性数据
SFC 15 DPWR_DAT 将一致性数据写入DP标准从站
SFC 17 ALARM_SQ 生成可确认的与块相关的消息
SFC 18 ALARM_S 生成永久确认的与块相关的消息
SFC 19 ALARM_SC 查询上一个ALARM_SQ输入状态消息的确认状态
SFC 20 BLKMOV 复制变量
SFC 21 FILL 初始化存储区
SFC 22 CREAT_DB 创建数据块
SFC 23 DEL_DB 删除数据块
SFC 24 TEST_DB 测试数据块
SFC 25 COMPRESS 压缩用户存储器
SFC 26 UPDAT_PI 更新过程映像更新表
SFC 27 UPDAT_PO 更新过程映像输出表
SFC 28 SET_TINT 设置时间中断
SFC 29 CAN_TINT 取消时间中断
SFC 30 ACT_TINT 激活时间中断
SFC 31 QRY_TINT 查询时间中断
SFC 32 SRT_DINT 启动延时中断
SFC 33 CAN_DINT 取消延时中断
SFC 34 QRY_DINT 查询延时中断
SFC 35 MP_ALM 触发多值计算中断
SFC 36 MSK_FLT 屏蔽同步错误
SFC 37 DMSK_FLT 取消屏蔽同步错误
SFC 38 READ_ERR 读错误寄存器
SFC 39 DIS_IRT 禁用新的中断和异步错误
SFC 40 EN_IRT 启用新的中断和异步错误
SFC 41 DIS_AIRT 延迟高优先级的中断和异步错误
SFC 42 EN_AIRT 启用高优先级的中断和异步错误
SFC 43 RE_TRIGR 重新触发周期监视
SFC 44 REPL_VAL 将替换值传送到累加器1
SFC 46 STP 将 CPU 切换到 STOP 模式
SFC 47 WAIT 延迟执行用户程序
SFC 48 SNC_RTCB 同步从站时钟
SFC 49 LGC_GADR 查询属于一个逻辑地址的模块插槽
SFC 50 RD_LGADR 查询模块的所有逻辑地址
SFC 51 RDSYSST 读系统状态列表或部分列表
SFC 52 WR_USMSG 将用户自定义的诊断事件写入诊断缓冲区
SFC 54 RD_PARM 读已定义的参数
SFC 55 WR_PARM 写动态参数
SFC 56 WR_DPARM 写默认参数
SFC 57 PARM_MOD 为一个模块分配参数
SFC 58 WR_REC 写一条数据记录
SFC 59 RD_REC 读一个数据记录
SFC 60 GD_SND 发送GD信息包
SFC 61 GD_RCV 获取一个收到的GD信息包
SFC 62 CONTROL 查询属于一个通讯SFB实例的连接状态
SFC 63 AB_CALL 组合代码块
SFC 64 TIME_TCK 读系统时间
SFC 65 X_SEND 将数据发送到本地S7站外部的通讯伙伴
SFC 66 X_RCV 接收来自本地S7站外部的通讯伙伴的数据
SFC 67 X_GET 读来自本地S7站外部的通讯伙伴的数据
SFC 68 X_PUT 将数据写入本地S7站外部的通讯伙伴
SFC 69 X_ABORT 中止与本地S7站外部的通讯伙伴之间的现有连接
SFC 70 GEO_LOG 确定模块的起始地址
SFC 71 LOG_GEO 确定属于逻辑地址的插槽
SFC 72 I_GET 读来自本地S7站内的通讯伙伴的数据
SFC 73 I_PUT 将数据写入本地S7站内的通讯伙伴
SFC 74 I_ABORT 中止与本地S7站内的通讯伙伴之间的现有连接
SFC 78 OB_RT 确定OB程序运行时间
SFC 79 SET 设置输出范围
SFC 80 RSET 重置输出范围
SFC 81 UBLKMOV 不可中断的块移动
SFC 82 CREA_DBL 在装载存储器中创建数据块
SFC 83 READ_DBL 从装载存储器中的数据块读
SFC 84 WRIT_DBL 从装载存储器中的数据块写
SFC 85 CREA_DB 创建数据块
SFC 87 C_DIAG 实际连接状态的诊断
SFC 90 H_CTRL 控制H系统中的 *** 作
SFC 100 SET_CLKS 设置日时钟和TOD状态
SFC 101 RTM 处理运行系统计时器
SFC 102 RD_DPARA 重新定义的参数
SFC 103 DP_TOPOL 标识DP主站系统中的总线拓扑
SFC 104 CiR 控制CiR
SFC 105 READ_SI 读动态系统资源
SFC 106 DEL_SI 删除动态系统资源
SFC 107 ALARM_DQ 生成始终可确认的与块相关的消息
SFC 108 ALARM_D 生成始终可确认的与块相关的消息
SFC 109 PROTECT 激活写保护
SFC 112 PN_IN 更新PROFInet组件的用户程序接口中的输入
SFC 113 PN_OUT 更新PROFInet组件的用户程序接口中的输出
SFC 114 PN_DP 更新DP互连
SFC 126 SYNC_PI 以同步循环的方式更新过程映像分区输入表
SFC 127 SYNC_PO 以同步循环的方式更新过程映像分区输出表
AB_CALL SFC 63 组合代码块
ACT_TINT SFC 30 激活时间中断
ALARM_D SFC 108 生成永久可确认的与块相关的消息
ALARM_DQ SFC 107 生成永久可确认的与块相关的消息
ALARM_S SFC 18 生成永久确认的与块相关的消息
ALARM_SC SFC 19 查询上一个ALARM_SQ输入状态消息的确认状态
ALARM_SQ SFC 17 生成可确认的与块相关的消息
BLKMOV SFC 20 复制变量
C_DIAG SFC 87 实际连接状态的诊断
CAN_DINT SFC 33 取消延时中断
CAN_TINT SFC 29 取消时间中断
CiR SFC 104 控制CiR
COMPRESS SFC 25 压缩用户存储器
CONTROL SFC 62 查询属于一个通讯SFB实例的连接状态
CREA_DB SFC 85 创建数据块
CREA_DBL SFC 82 在装载存储器中生成数据块
CREAT_DB SFC 22 创建数据块
CTRL_RTM SFC 3 启动/停止运行系统计时器
D_ACT_DP SFC 12 取消激活和激活DP从站
DEL_DB SFC 23 删除数据块
DEL_SI SFC 106 删除动态占用的系统资源
DIS_AIRT SFC 41 延迟高优先级的中断和异步错误
DIS_IRT SFC 39 禁用新的中断和异步错误
DIS_MSG SFC 10 禁用与块相关、符号相关及组状态消息
DMSK_FLT SFC 37 取消屏蔽同步错误
DP_PRAL SFC 7 在DP主站上触发硬件中断
DP_TOPOL SFC 103 标识DP主站系统中的总线拓扑
DPNRM_DG SFC 13 读DP从站的诊断数据(从站诊断)
DPRD_DAT SFC 14 从标准DP从站读取一致性数据
DPSYC_FR SFC 11 同步DP从站组
DPWR_DAT SFC 15 将一致性数据写入DP标准从站
EN_AIRT SFC 42 启用高优先级的中断和异步错误
EN_IRT SFC 40 启用新的中断和异步错误
EN_MSG SFC 9 启用与块相关、符号相关及组状态消息
FILL SFC 21 初始化存储区
GADR_LGC SFC 5 查询通道的逻辑地址
GD_RCV SFC 61 获取一个收到的GD信息包
GEO_LOG SFC 70 确定模块的起始地址
GD_SND SFC 60 发送GD信息包
H_CTRL SFC 90 控制H系统中的 *** 作
I_ABORT SFC 74 中止与本地S7站内的通讯伙伴之间的现有连接
I_GET SFC 72 读来自本地S7站内的通讯伙伴的数据
I_PUT SFC 73 将数据写入本地S7站内的通讯伙伴
LOG_GEO SFC 71 确定属于逻辑地址的插槽
LGC_GADR SFC 49 查询属于一个逻辑地址的模块插槽
MP_ALM SFC 35 触发多值计算中断
MSK_FLT SFC 36 屏蔽同步错误
PARM_MOD SFC 57 为一个模块分配参数
PN_DP SFC 114 更新DP互连
PN_IN SFC 112 更新PROFInet组件的用户程序接口中的输入
PN_OUT SFC 113 更新PROFInet组件的用户程序接口中的输出
PROTECT SFC 109 激活写保护
QRY_DINT SFC 34 查询延时中断
QRY_TINT SFC 31 查询时间中断
RD_DPARA SFC 102 重新定义的参数
RD_LGADR SFC 50 查询模块的所有逻辑地址
RD_PARM SFC 54 读已定义的参数
RD_REC SFC 59 读一个数据记录
RD_SINFO SFC 6 读OB的启动信息
RDSYSST SFC 51 读系统状态列表或部分列表
RE_TRIGR SFC 43 重新触发周期监视
READ_CLK SFC 1 读系统时钟
READ_DBL SFC 83 从装载存储器中的数据块读
READ_ERR SFC 38 读错误寄存器
READ_RTM SFC 4 读运行系统计时器
READ_SI SFC 105 读动态占用的系统资源
REPL_VAL SFC 44 将替换值传送到累加器1
RSET SFC 80 重置输出范围
RTM SFC 101 处理运行系统计时器
SET SFC 79 设置输出范围
SET_CLK SFC 0 设置系统时钟
SET_CLKS SFC 100 设置日时钟和TOD状态
SET_RTM SFC 2 设置运行系统计时器
SET_TINT SFC 28 设置时间中断
SNC_RTCB SFC 48 同步从站时钟
SRT_DINT SFC 32 启动延时中断
STP SFC 46 将 CPU 切换到 STOP 模式
SYNC_PI SFC 126 以同步循环的方式更新过程映像分区输入表
SYNC_PO SFC 127 以同步循环的方式更新过程映像分区输出表
TEST_DB SFC 24 测试数据块
TIME_TCK SFC 64 读系统时间
UBLKMOV SFC 81 不可中断的块移动
UPDAT_PI SFC 26 更新过程映像更新表
UPDAT_PO SFC 27 更新过程映像输出表
WAIT SFC 47 延迟执行用户程序
WR_DPARM SFC 56 写默认参数
WR_PARM SFC 55 写动态参数
WR_REC SFC 58 写一条数据记录
WR_USMSG SFC 52 将用户自定义的诊断事件写入诊断缓冲区
WRIT_DBL SFC 84 从装载存储器中的数据块写
X_ABORT SFC 69 中止与本地S7站外部的通讯伙伴之间的现有连接
X_GET SFC 67 读来自本地S7站外部的通讯伙伴的数据
X_PUT SFC 68 将数据写入本地S7站外部的通讯伙伴
X_RCV SFC 66 接收来自本地S7站外部的通讯伙伴的数据
X_SEND SFC 65 将数据发送到本地S7站外部的通讯伙伴
编号 短名称 功能
SFB 0 CTU 递增计数器
SFB 1 CTD 递减计数器
SFB 2 CTUD 递增/递减计数器
SFB 3 TP 生成脉冲
SFB 4 TON 生成接通延迟
SFB 5 TOF 生成断开延迟
SFB 8 USEND 数据的不对等的发送
SFB 9 URCV 数据的不对等的接收
SFB 12 BSEND 发送分段数据
SFB 13 BRCV 接收分段数据
SFB 14 GET 从远程CPU读数据
SFB 15 PUT 将数据写入远程CPU
SFB 16 PRINT 将数据发送到打印机
SFB 19 START 在远程设备上开始一个暖重启或冷重启
SFB 20 STOP 将远程设备切换为STOP状态
SFB 21 RESUME 在远程设备上开始一个热重启
SFB 22 STATUS 查询远程伙伴的状态
SFB 23 USTATUS 接收远程设备的状态
SFB 29 HS_COUNT 计数器(高速计数器,集成功能)
SFB 30 FREQ_MES 频率计(频率计,集成功能)
SFB 31 NOTIFY_8P 生成没有确认指示的与块相关的消息
SFB 32 DRUM 执行序列发生器
SFB 33 ALARM 生成具有确认显示的与块相关的消息
SFB 34 ALARM_8 生成与块相关的消息,其中没有用于表示8个信号的值
SFB 35 ALARM_8P 生成与块相关的消息,其中带有用于表示8个信号的值
SFB 36 NOTIFY 生成没有确认显示的与块相关的消息
SFB 37 AR_SEND 发送归档数据
SFB 38 HSC_A_B 计数器A/B (集成功能)
SFB 39 POS 定位(集成功能)
SFB 41 CONT_C 1) 连续控制
SFB 42 CONT_S 1) 步进控制
SFB 43 PULSEGEN 1) 脉冲生成
SFB 44 ANALOG 2) 使用模拟量输出定位
SFB 46 DIGITAL 2) 使用数字量输出定位
SFB 47 COUNT 2) 控制计数器
SFB 48 FREQUENC 2) 控制频率测量
SFB 49 PULSE 2) 控制脉宽调制
SFB 52 RDREC 读一条数据记录
SFB 53 WRREC 写一条数据记录
SFB 54 RALRM 接收中断
SFB 60 SEND_PTP 2) 发送数据(ASCII、3964(R))
SFB 61 RECV_PTP 2) 接收数据(ASCII、3964(R))
SFB 62 RES_RECV 2) 删除接收缓冲区(ASCII、3964(R))
SFB 63 SEND_RK 2) 发送数据(RK 512)
SFB 64 FETCH_RK 2) 获取数据(RK 512)
SFB 65 SERVE_RK 2) 接收和提供数据(RK 512)
SFB 75 SALRM 将中断发送到DP主站
SFB 81 RD_DPAR 读预定义的参数
短名称 编号 功能
ALARM SFB 33 生成具有确认的与块相关的消息
ALARM_8 SFB 34 生成与块相关的消息,其中没有用于表示8个信号的值
ALARM_8P SFB 35 生成与块相关的消息,其中带有用于表示8个信号的值
ANALOG SFB 44 使用模拟量输出定位
AR_SEND SFB 37 发送归档数据
BRCV SFB 13 接收分段数据
BSEND SFB 12 发送分段数据
CONT_C 1) SFB 41 连续控制
CONT_S 1) SFB 42 步进控制
COUNT SFB 47 控制计数器
CTD SFB 1 递减计数器
CTU SFB 0 递增计数器
CTUD SFB 2 递增/递减计数器
DIGITAL SFB 46 使用数字量输出定位
DRUM SFB 32 执行序列发生器
FETCH_RK SFB 64 接收数据(RK 512)
FREQ_MES SFB 30 频率计(频率计,集成功能)
FREQUENC SFB 48 控制频率测量
GET SFB 14 从远程CPU读数据
HSC_A_B SFB 38 计数器A/B (集成功能)
HS_COUNT SFB 29 计数器(高速计数器,集成功能)
NOTIFY SFB 36 生成没有确认显示的与块相关的消息
NOTIFY_8P SFB 31 生成没有确认指示的与块相关的消息
POS SFB 39 定位(集成功能)
PRINT SFB 16 将数据发送到打印机
PULSE SFB 49 控制脉宽调制
PULSEGEN 1) SFB 43 脉冲生成
PUT SFB 15 将数据写入远程CPU
RALRM SFB 54 接收中断
RD_DPAR SFB 81 读预定义的参数
RDREC SFB 52 读一条数据记录
RECV_PTP SFB 61 接收数据(ASCII、3964(R))
RES_RECV SFB 62 删除接收缓冲区(ASCII、3964(R))
RESUME SFB 21 在远程设备上开始一个热重启
SALRM SFB 75 将中断发送到DP主站
SEND_PTP SFB 60 发送数据(ASCII、3964(R))
SEND_RK SFB 63 发送数据(RK 512)
SERVE_RK SFB 65 接收和提供数据(RK 512)
START SFB 19 在远程设备上开始一个暖重启或冷重启
STATUS SFB 22 查询远程伙伴的状态
STOP SFB 20 将远程设备切换为STOP状态
TOF SFB 5 生成断开延迟
TON SFB 4 生成接通延迟
TP SFB 3 生成脉冲
URCV SFB 9 数据的不对等的接收
USEND SFB 8 数据的不对等的发送
USTATUS SFB 23 接收远程设备的状态
WRREC SFB 53 写数据记录

在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。
FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能
FB运行时需要调用各种参数,于是就产生了背景数据块DB。例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。FB具有储存功能
系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB和SFC是集成在S7
CPU中的功能块,用户能直接调用不需自已写程序。
SFC与FC不具有储存功能,FB和SFB具有储存功能

OB模块相当于子程序,负责调用其他模块。如果程序简单只需要OB就可以实现。
用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗?
FB--功能块,带背景数据块
FC--功能,相当于函数
他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块
举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。
FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着FB使用的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。
在实际编程中,是使用FB还是FC,要看实际的需要决定。
FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。
FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。
这是一般的理解;FB需要背景数据块,而FC是没有的;参数的传递方式不同,FB的输入输出对应着背景数据块地址,而FC的输入输出是没有实际地址对应的,只有的程序调用时,才会和实际的地址产生对应关系。FB参数传递的是数据,FC参数传递的是数据的地址。
参考文献:>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13254586.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-27
下一篇 2023-06-27

发表评论

登录后才能评论

评论列表(0条)

保存