S7 1200 PLC对编码器计数,断电记忆
目录
- 准备工作
- 新建项目
- PLC硬件配置
- 添加程序
- 编辑HMI画面
- 下载程序并启动
- 后记:
准备工作
准备一款1200系列PLC,和装有TIA Portal 的上位机,用网线将两者连接。把编码器连接到PLC的输入端,可以是AB相正交解码或者单相的。
新建项目
在Portal上新建一个项目,添加一个对应型号的PLC,和一个4寸HMI。HMI用于方便交互,可以在电脑上仿真实现,不需要有实物。
PLC硬件配置
打开PLC的设备组态页面,点击右边的CPU本体,再点下面的 属性 - 常规:
如下图设置输入点的滤波时间,默认6.4ms滤波,如果接编码器,编码器的脉冲频率比较高,会导致漏检,所以要改小。需要先预估一下自己编码器在工作时,输出信号的周期能达到多少,然后选择一个合适的滤波时间,滤波时间要小于编码器信号变化的间隔。
展开高速计数器分支,在右边勾选启用,把运行模式改成和自己的编码器一致,最后确认输入点和导线连接一致。
打开系统常数页面,留意自己要使用的计数器端口的硬件标识符,比如下面HSC_1对应257,这个后面要用。
添加程序
在项目树中,新建一个启动OB,一个数据块:
如下图,在数据块中新建3个变量,类型分别为HSC_Count,DInt和Bool,对应下图中的Enc, EncCntMem和置零按钮。第一个是结构体,里面有很多成员变量,不用去改;第二个DInt用来在断电期间存储计数值,因此必须勾选“保持”;第三个Bool对应HMI中的清零按钮。
打开启动OB,按照下图添加程序。其中,MOVE操作是在上电时,把上次存储的值放到结构体的 NewCurrentCount中。之后把EnCV置位,表示要把NewCurrentCount装载到当前数值。
打开Main OB,添加如下程序。首先是把结构体的EnHSC置位,表示打开软件门;之后的CTRL_HSC_EXT_DB,是把硬件端口和结构体进行绑定,注意这里向函数输入的HSC参数,就是之前的硬件标识符;之后是如果EnCV被置位了,则将其复位,EnCV是用来更新计数值的,这样可以保证它每次只置位一个周期;之后是响应清零按钮,和启动OB中的程序类似;最后,把当前计数值CurrentCount赋值到EncCntMem,实现断电记忆。
上面的CTRL_HSC_EXT函数,可以在右边指令栏找到:
编辑HMI画面
编辑HMI的根画面,把数据块中的EncCntMem拖到页面中,再放个按钮,按钮按下时置位数据块中的Bool,释放时复位。
下载程序并启动
为了成功下载,需要在电脑上打开控制面板,按下图设置PCPG接口,需要给PLC程序下载的信道设置正确的网口。
最后,项目树中右击PLC,下载硬件和软件;右击HMI,启动仿真。不出意外的话,就可以实现编码器计数、清零和断电保存的功能了。
后记:
在数据块中,使用了一个DInt实现断电存储。如果把结构体Enc设成保持,是不是就可以直接实现记忆,不需要DInt了?我试了一下是不行的,在上电时,结构体的CurrentCount总是会清零一次。
S7 1200 PLC对编码器计数,断电记忆相关推荐
- PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速
PLC实验-西门子S7 1200读取旋转编码器数据并计算电机转速 注意PTO控制步进电机实验博途软件需要V14版本,不然没有PTO功能块 软件的下载请点击下方百度网盘的链接 链接:https://pa ...
- PLC实验—西门子S7 1200 PID控制步进电机转速
PLC实验-西门子S7 1200 PID控制步进电机转速 严格讲并不是PID控制,因为并不是并不研究这个方向,研二又比较忙,时间限制只加了比例系数 这里只是抛砖引玉,希望大家可以进一步完善补充 思路 ...
- 基于s7—1200的电梯控制,wincc hmi动画仿真,带PLC源代码
基于s7-1200的电梯控制,wincc hmi动画仿真,带PLC源代码,hmi源代码,图纸,IO地址分配id=639682504507&
- 西门子plc s-7 1200驱动伺服电机方法
西门子plc s-7 1200驱动伺服电机方法 前言 完整设备连接 驱动实际接线图 程序编写 新建项目 添加工艺对象 配置工艺对象 程序编写 启动方法 选择工作模式 前言 其实,伺服电机还用另外两种工 ...
- 西门子S7系列PLC安全防护研究
近年来,随着中国制造的不断崛起,工业控制系统已成为国家关键基础设施的重中之重,工控系统的安全问题也随之而来.工控产品的多样化,造成了工控系统网络通讯协议不同,大量的工控系统采用私有协议,从而导致协议存 ...
- C# 读取西门子S7系列PLC教程及源码
创建 PLC 实例,连接和断开连接 若要创建驱动程序的实例,需要使用此构造函数: public Plc(CpuType cpu, string ip, Int16 rack, Int16 slot) ...
- 在s7 1200中模拟量的应用
模拟量 概念:随着时间连续变化的物理量被称为模拟量.例如:电压.电流.压力.速度.流量.温度等信号.通常电压信号为0~10V,电流信号为4~20mA,可以用PLC的模拟量模块进行数据采集,其经过抽样和 ...
- S7-1200 PLC通过编码器实现高速计数器的测速功能
S7-1200 PLC通过编码器实现高速计数器的测速功能 PLC通过计算单位时间内编码器反馈回来的脉冲数量来测出电机的实时转速,这里编码器使用A/B相计数. 在CPU中的组态配置中"启用该高 ...
- ESP8266-01模块接入巴法云,SmartConfig智能配网,设置断电记忆模式,可以使用米家控制和普通开关控制
文章目录 前言 Demo下载地址 一.项目介绍 1.开关控制方式: 2.SmartConfig配网: 3.重置配网: 4.断电记忆模式切换: 5.通过MQTT设备云方式接入网络 二.使用步骤 1.文件 ...
最新文章
- java mysql 全文索引_MySQL索引原理
- Vue怎样传递和获取路由参数
- rust(56)-mp3(1)
- 智能个性化推荐_个性化推荐算法_新闻推荐系统_人工智能推荐平台|Giiso智搜...
- node.js微博案例第二讲
- 张一鸣:优秀年轻人的五个特点
- HDU 1788 Chinese remainder theorem again
- 使用SQL Server日志传送将SQL数据库移动到其他服务器
- 薪资被倒挂?是怒刷 LeetCode,还是另寻他路?
- 打开excel后,提示更新链接的原因(含批量处理VBA代码)
- A - 敌兵布阵(线段树)(单点更新区间求和)
- html毕业答辩ppt,毕业答辩ppt
- 大学高数常微分方程思维导图_思维导图_2016考研数学:高数中六种常见题型归纳_沪江英语...
- 浅谈一下workstation
- 哈哈哈,我终于注册了CSDN的账号
- 内温的整体优先效应实验_认知
- 主成分分析(PCA)详解
- android app卸载以后弹出用户反馈界面
- 均方误差——MSE 和标准差 的区别
- mysql试题百度云_MYSQL练习题及答案