高级工程师的项目:高速计数器使用案例,含程序

关于启程启程自动化成立于2012年,培训项目主打西门子PLC编程系统集成、工业机器人编程、EPLAN电气设计、视觉等培训与技术服务的机构。推荐高薪就业,越努力越幸运假设在旋转机械上有单相增量编码器作为反馈,接入到S7-1200 CPU,要求在计数25个脉冲时,计数器复位,置位 M0.5,并设定新预置值为50个脉冲,当计满50个脉冲后复位M0.5,并将预置值再设为25,周而复始执行此功能。针对此应用,选择CPU 1214C,高速计数器为:HSC1。模式为:单相计数,内部方向控制,无外部复位。脉冲输入接入I0.0,使用HSC1的预置值中断(CV=RV)功能实现此应用。组态步骤:先在设备与组态中,选择CPU,单击属性,激活高速计数器,并设置相关参数。此步骤必须事先执行,S7-1200的高速计数器功能必须要先在硬件组态中激活,才能进行下面的步骤。添加硬件中断块,关联相对应的高速计数器所产生的预置值中断,在中断块中添加高速计数器指令块,编写修改预置值程序,设置复位计数器等参数。将程序下载,执行功能。硬件组态如图1所示,进入CPU的硬件视图。图1.选中CPU

①展开PLC,左键双击设备组态②在CPU硬件视图,左键选中CPU如图2所示,启用高速计数器。图2.选择属性打开组态界面

①左键选择属性②在导航栏中选择“高速计数器(HSC)”,在HSC1中选择“常规”③勾选“启用该高速计数器”如图3所示,设置高速计数器基本设置。

图3.激活高速计数功能①在HSC1中选择'功能'②计数类型选择“计数”③工作模式选择“单相”④计数方向取决于选择“用户程序(内部方向控制)”⑤初始计数方向选择“加计数”如图4所示,设置计数器初始值。图4. 计数器初始值

①在HSC1中选择'初始值'②初始计数器值设置“0”③初始参考值设置“25”如图5所示,组态事件。图5.事件组态

①在HSC1中选择'事件组态'②激活“为计数器值等于参考值这一事件生成中断”③左键点击该按钮在弹出页面选择所需的硬件中断④如果没有硬件中断或者没有所需要的硬件中断,则左键点击按钮“新增”,会弹出页面,如图6所示图6. 添加新的硬件中断

①选择'Hardware interrupt'②注意该硬件中断的中断OB编号③左键点击“确定”按钮如图7所示,设置硬件输入点。

图7. 设置输入点①在HSC1中选择'硬件输入'②在时钟发生器输入中选择所需的I点,例如例子中的“I0.0”如图8所示,查看HSC的计数值地址。图8. 计数值地址

①在HSC1中选择'I/O地址'②起始地址到结束地址为HSC实际计数器值的地址,图中地址为ID1000。③组织块和过程映像一般设置默认,可以设置计数值在指定OB更新。如图9所示,设置I点的输入滤波器时间。

图9.输入滤波器①在CPU或者信号板中找到使用的通道②在输入滤波器设置合适的滤波值,V4.0以后版本需要设置,具体可以参考FAQ页面,为什么S7-1200 高速计数器只能检测到低频率的脉冲信号。至此硬件组态部分已经完成,下面进行程序编写程序编写如图10所示,展开项目树中的PLC的程序块,选择所需的硬件中断。图10. 打开硬件中断块

①左键双击打开所需的硬件中断如图11所示,在指令列表中找到工艺指令 -- 计数 -- CTRL_HSC_EXT。

图11. 添加高速计数器①在图中位置找到所需指令,将指令拖入硬件中断的程序编辑器,会产生如图12所示的调用选项,只能选择单个实例,单击“确定”按钮。

图12. 定义指令背景数据块如图13所示,新建DB,新建变量,数据类型为HSC_Count。

图13. 高速计数器变量①在数据类型处手动输入HSC_Count,输入完回车确认。如图14所示,展开该变量。

图14. 高速计数器变量①将该变量设置为1,也就是高速计数器的软件门使能。如图15所示,在硬件中断内编程。

图 15. 硬件中断编程程序段1:M0.5作为标志位,在OB1第一个扫描周期置位,参考图16,该标志位为1时指代参考值为25时,为0时指代参考值为50时。当进入中断时,反转标志位,并赋值新的参考值。程序段2:设置新的当前值为0,设置新的当前值使能,设置新的参考值使能。程序段3:触发高速计数器指令①输入高速计数器标识符,以HSC1为例,建议输入符号名“Local~HSC_1”。②在CTRL处输入图13处新建的变量。如图16所示,在OB1中编写程序,只需将图15中的程序段3复制到OB1即可。

图16. OB1程序至此程序编制部分完成,将完成的组态与程序下载到CPU后即可执行,当前的计数值可在ID1000中读出 ,关于高速计数器指令块,若不需要修改当前值、参考值等参数,可不需要调用,系统仍然可以计数。高速计数器常见问题如何在高速计数器断电或停机后实现数据保持?答:有两种方法,分别使用CTRL_HSC指令和CTRL_HSC_EXT指令。首先配置高速计数器:1在设备视图>HSC_1>属性>常规,启用该高速计数器。

图 012在设备视图>HSC_1>属性>功能,定义计数类型为计数。

图 023在设备视图>HSC_1>属性>I/O地址,使用缺省地址1000作为高速计数器地址。

图 03方法1:使用CTRL_HSC指令1添加一个新的 DB 命名为 DB HSC retain,并且创建一个DINT数据元素,命名为HSC_1用于保存高速计数器的值。为了实现这个功能,HSC_1通过勾选保持项实现数据保持。

图 042插入 Cyclic interrupt (循环中断)OB201,设置中断时间为 10 ms (也可以根据需要改变这个时间)。然后在 OB201 中将高速计数器的值 ID1000:P 送到 'DB HSC retain'.HSC_1 中。这样,高速计数器的值每10ms 送到 DB 中保存。

图 053创建Startup(启动OB)OB100,并且编程将保存的数值 'DB HSC retain'.HSC_1 送到 NEW_CV,并且置位 CV 位。使得在CPU 启动时,保存的值被设置成当前值。

图 064在 OB1 中编程 CTRL_HSC ,再将保存的值设为当前值后,复位 CV 位。

图07方法2:使用CTRL_HSC_EXT指令1添加一个新的 DB 命名为 DB HSC retain,并且创建一个DINT数据元素,命名为HSC_1用于保存高速计数器的值。为了实现这个功能,HSC_1通过勾选保持项实现数据保持。此外创建系统数据类型HSC_Count的变量Static_1用于CTRL_HSC_EXT指令。

图 082插入 Cyclic interrupt (循环中断)OB201,设置中断时间为 10 ms (也可以根据需要改变这个时间)。然后在 OB201 中将高速计数器的值 ID1000:P 送到 'DB HSC retain'.HSC_1 中。这样,高速计数器的值每10ms 送到 DB 中保存。

图 093创建Startup(启动OB)OB100,并且编程将保存的数值 'DB HSC retain'.HSC_1 送到新当前值且置位触发条件和高速计数器的软件门,使得在CPU 启动时,保存的值被设置成当前值。

图 104在 OB1 中编程 CTRL_HSC_EXT ,将保存的值设为当前值后,复位触发位。

图 11高速计数器的计数范围是什么?答:高速计数器的计数范围是-231~231-1。当向上计数到最大值231-1时,会跳回到-231;当向下计数到最小值-231时,会跳回231-1。断电停机或复位后,高速计数器的值会复位到什么值?答:CPU 断电或重启后,高速计数器的值会复位到初始值;如果执行了外部复位,高速计数器的值会复位为0。不编写 CTRL_HSC,高速计数器是否可以计数?答:只要在硬件配置里使能并组态了高速计数器,不编写 CTRL_HSC,高速计数器就可以正常计数。CTRL_HSC 只是完成参数写入的功能。为什么高速计数器的数值不增加,总是停在一个固定的值?答:如果编程了 CTRL_HSC,当置位 CV 将 NEW_CV 写入当前值后,CV位不会自动复位为0,这时程序会一直将 NEW_CV写入当前值,导致高速计数器不继续计数而保持在固定的 NEW_CV 值。因此必须编程复位 CV,才能避免该错误的发生。如果高速计数器定义为 '运动轴' 计数,程序中是否还可以访问 ID1000:P 的值?答:如果高速计数器用做内部的运动控制的计数,此时程序中不能再访问 ID1000:P 的值,否则会造成 I/O 访问错误。如果没有编程GET_ERROR 或 GET_ERR_ID 指令,还会造成 CPU 停机。为什么 CTRL_HSC 的 'STATUS' 会返回 '80C0' 多次访问高速计数器错误?答:如果高速计数器用做内部的运动控制的计数,则CTRL_HSC 的 'STATUS' 就会返回 '80C0' 多次访问高速计数器错误。使用信号板 SB1221 4DI (CPU V3.0及早期版本)最多可以接入多少组高速计数器 ?答:最多2组,所使用的高速计数器号可以是 HSC1、HSC2、HSC5、HSC6其中2组。为什么S7-1200 高速计数器只能检测到低频率的脉冲信号?答:在 S7-1200 CPU 和 SB 信号板的属性中,数字量输入通道的输入滤波器默认设置值为 6.4 millisec,该输入滤波时间对应的高速计数器能检测到的最大频率为 78Hz。因此如果使用该默认值,且 S7-1200 CPU 或 SB 信号板接入的高速输入脉冲超过 78Hz,则 S7-1200 CPU 或SB 信号板过滤掉该频率的输入脉冲。要正确使用 S7-1200 CPU 和 SB 信号板高速计数功能,需要根据实际接入的高速输入脉冲最大频率,在'属性—常规—数字量输入通道设置'输入滤波器时间。V4.0 或更高版本的 S7-1200 CPU 和 SB 信号板,每个数字量输入点都可设置输入滤波器时间, 如下图 12、13 所示:

图 12. 设置 S7-1200 CPU 输入滤波器时间

图 13. 设置 SB 信号板输入滤波器时间下表 1 显示了输入滤波器时间和可检测到的最大输入频率:输入滤波器时间可检测到的最大输入频率0.1 microsec1MHz0.2 microsec1MHz0.4 microsec1MHz0.8 microsec625kHz1.6 microsec312kHz3.2 microsec156kHz6.4 microsec78kHz10 microsec50kHz12.8 microsec39kHz20 microsec25kHz0.05 millisec10kHz0.1 millisec5kHz0.2 millisec2.5kHz0.4 millisec1.25kHz0.8 millisec625Hz1.6 millisec312Hz3.2 millisec156Hz6.4 millisec78Hz10 millisec50Hz12.8 millisec39Hz20 millisec25Hz表 1 输入滤波器时间和可检测到的最大输入频率S7-1200 的高速计数器输入通道是否固定?答:早期固件版本的高速计数器输入通道是固定的。V4.0 或更高版本的 S7-1200 的高速计数器输入通道可以在其属性中更改。如图 14 所示:

图 14. 更改高速计数器输入通道S7-1200 CPU 最多支持多少个高速计数器?答:早期固件版本的S7-1200 CPU 中,CPU 1211C 最多支持3个单相的高速计数器,CPU 1212C 最多支持 4 个单相的高速计数器,CPU1214C 和 CPU1215C最 多支持6个单相的高速计数器。V4.0或更高版本的所有型号的S7-1200 CPU 都支持最多6个单相高速计数器。需要注意的是V4.0或更高版本的 S7-1200 CPU 有默认的高速计数器通道地址,而 CPU 1211C 数字量输入地址仅有 6 个,为I0.0-I0.5,CPU 1212C 数字量输入地址仅有8个,为I0.0-I0.7。因此如果需要使用 CPU 1211C 的 HSC4, HSC5, HSC6 或 CPU 1212C 的 HSC5, HSC6 ,则需要更改其硬件输入地址到有效的范围才能正常使用。以 CPU1211C 举例,如图 15、16、17所示:

图 15. 更改 HSC4 的硬件输入地址

图 16. 更改 HSC5 的硬件输入地址

图 17. 更改 HSC6 的硬件输入地址来源:网络侵删

(0)

相关推荐

  • S7-200 SMART连接增量型编码器的注意问题

    编码器的接线: 输入通道的滤波时间: 高速计数器: 1.编码器的接线 我实验台上使用的是A/B相增量型编码器,它有四条线,包括:A相信号线.B相信号线.电源正极和电源负极.电源线按照正负接好即可,信号 ...

  • S7-200SMART PLC断电后如何保持高速计数器当前值及常见问题解答

    S7-200 SMART PLC的断电数据保持不支持高速计数器的范围设置,因此高速计数器的当前值在CPU每次断电后都会复位为数值0,要使S7-200 SMART PLC高速计数器的当前值在CPU断电重 ...

  • S7-200 SMART数字量输入滤波器和脉冲捕捉位

    组态数字量输入 单击 "系统块" (System Block) 对话框的 "数字量输入" (Digital Inputs) 节点组态数字量输入滤波器和脉冲捕捉位 ...

  • 案例 | 小车往返运动(含程序)

    一.小车往返运动 用S7-200实现小车往返的自动控制 ,控制过程为按下启动按钮 ,小车从左边往右边(右边往左边运动) 当运动到右边(左边)碰到右边(左边)的行程开关后 小车自动做返回运动,当碰到另一 ...

  • 谈谈PPP项目的资本金(含专项债)问题

    在实务中,随着PPP项目陆续投资,由于股东自有资金不足.项目建设进度所需的资金与金融机构贷款资金时间错配等因素,导致实际中出现资本金与PPP项目合同中约定的不一致,如不足和超出的问题,因此,本文在尊重 ...

  • 光影夜游项目:经典案例

    夜间经济发展愈发如火如荼,夜游项目作为文旅融合的新鲜血液,已逐渐成为夜间经济发展中的重要组成部分,城市与景区未来发展的蓝海. 消费者越来越喜欢在夜间出行游览和娱乐,目的地城市和旅游景区也逐渐发力,通过 ...

  • 项目总结和案例提炼的区别

    顾问在编写项目总结和案例提炼的时候很容易搞不清楚两者的区别,写着写着就写混了,其实两者是有区别的,区别如下: |使用人不同 项目总结主要用于内部学习,顾问自己的学习和顾问团队的内部学习. 案例提炼除了 ...

  • 2021年某圈内20家顶级企业培训体系案例含华为/阿里/腾讯/京东

    顶级企业肯定会搭建顶级的培训体系,企业内部的培训尽管不能马上转化为业绩,但人才的培养提升却是组织长效发展的保障. 这里有华为.阿里.京东.字节跳动.小米.美团.饿了么.网易.中信银行.平安银行.招商银 ...

  • 51单片机应用之无线通讯模块NRF24L01 (含程序源码)

    内含详细教程: 单片机源程序如下: 接下来我们写发送程序: //********************************** //   NRF24L01+模块发射程序 //      用8个L ...

  • 【企业项目】转底炉处理含铁、锌尘泥资源循环利用关键技术及示范科技成果

    沙钢集团"转底炉处理含铁.锌尘泥资源循环利用关键技术及示范项目",是神雾集团江苏冶金设计院与沙钢集团双方共同承担的国家科技部"十二五"重大支撑课题,经过多年的探 ...

  • ​关于项目支出绩效评价的思考与项目支出绩效评价案例

    绩效评价 关于项目支出绩效评价的思考 关于项目支出绩效评价的思考 绩效评价是指通过运用多种多样的方法,采用一定的衡量标准对项目完成既定的目标的实现程度进行考核.绩效评价是一项重要且复杂的过程,需要运用 ...

  • 对赌协议:不可抗力、情势变更的破解案例(含6个法律要点)

    近期有消息称,58岁的周XX因为对赌失败,抵押了自己价值11亿的豪宅"天比高",以缓解资金压力.周XX此次对赌失败即是因为签署对赌协议融资后,整体电影票房不理想,没有达到承诺的利润 ...