tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用
本篇是《基于博途V15 西门子S7-1200 ...》系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇。也请专业领域的大神批评指正。
感谢大家关注与支持!
这是第四篇功能指令,本篇介绍两个简单的定时器指令应用实例。上一篇是《基于博途V15 西门子S7-1200 定时器指令应用实例》,大家可以自行查阅学习。
1.打开已经创建项目
名称为计数器指令应用
![](/assets/blank.gif)
2.添加PLC
![](/assets/blank.gif)
3.计数器简单介绍
1)计数器指令
可使用计数器指令对内部程序事件和外部过程事件进行计数;
每个计数器都使用数据块中存储的结构来保存计数器数据;
用户在编辑器中放置计数器指令时分配相应的数据块。
CTU 是加计数器
CTD 是减计数器
CTUD 是加减计数器
2)参数的数据类型
参数 数据类型 说明
CU, CD Bool 加计数或减计数,按加或减一计数
R (CTU, CTUD) Bool 将计数值重置为零
LD (CTD, CTUD) Bool 预设值的装载控制
PV SInt, Int, DInt, USInt, UInt, UDInt 预设计数值
Q, QU Bool CV >= PV 时为真
QD Bool CV <= 0 时为真
CV SInt, Int, DInt, USInt, UInt, UDInt 当前计数值
注:a.计数值的数值范围取决于所选的数据类型。如果计数值是无符号整型数,则可以减计数到零或加计数到范围限值。如果计数值是有符号整数,则可以减计数到负整数限值或加计数到正整数限值。
b.用户程序中可以使用的计数器数仅受 CPU 存储器容量限制。计数器占用以下存储器空间:
对于 SInt 或 USInt 数据类型,计数器指令占用 3 个字节。
对于 Int 或 UInt 数据类型,计数器指令占用 6 个字节。
对于 DInt 或 UDInt 数据类型,计数器指令占用 12 个字节
3)RUN-STOP-RUN 切换或 CPU 循环上电后保留计数器数据
如果从运行模式阶段切换到停止模式或 CPU 循环上电并启动了新运行模式阶段,则存储在之前运行模式阶段中的计数器数据将丢失,除非将定时器数据结构指定为具有保持性(CTU、CTD 和 CTUD 计数器)。将计数器指令放到程序编辑器中后,如果接受调用选项对话框中的默认设置,则将自动分配一个无法实现具有保持性的背景数据块。要使计数器数据具有保持性,必须使用全局数据块或多重背景数据块。
4)指定全局数据块将计数器数据存储为保持性数据
无论将计数器放在什么位置(OB、FC 或 FB),该选项都有效。
a. 创建一个全局数据块:
– 在项目树中双击“添加新块”(Add new block)。
– 单击数据块 (DB) 图标
– 对于“类型”(Type),选择“全局数据块”(global DB)。
– 如果希望能够将该数据块中的各个项选择为具有保持性,则确保选中“仅符号访问”(
symbolic-access-only) 框。
– 单击“确定”(OK)
b. 向该数据块添加计数器结构:
– 在新的全局数据块中,添加使用以下计数器数据类型之一的新静态变量。务必要考虑到想要用于预设值和计数值的类型。
– 在“保持性”(Retain) 列中,选中相应框以使该结构具有保持性。
– 重复此过程为要存储在该数据块中的所有计数器创建结构。
可以将每个计数器结构放置在独立的全局数据块中,也可以将多个计数器结构放置在同一个全局数据块中。
除计数器外,还可以将其它静态变量放置在该全局数据块中。将多个计数器结构放置在同一个全局数据块中可减少总的块数。
– 可根据需要重命名计数器结构。
c. 打开程序块来选择保持性计数器的放置位置(OB、FC 或 FB)。
d. 将计数器指令放置在所需位置。
e. 在调用选项对话框出现后,单击“取消”按钮。
您现在应该看到新的计数器指令,在指令名称的上面和下面均显示“???”。
f. 在新的计数器指令上方,输入上面所创建全局数据块和计数器结构的名称(请勿使用
助手浏览)(例如: “Data_block_3.Static_1”)。这需要填入对应的预设值和计数值类型(例如: UInt 对应于 IEC_UCounter 结构)。
计数器数据类型 预设值和计数值的相应类型
IEC_Counter INT
IEC_SCounter SINT
IEC_DCounter DINT
IEC_UCounter UINT
IEC_USCounter USINT
IEC_UDCounter UDINT
5)指定多重背景数据块以将计数器数据存储为保持性数据
该选项仅对于将计数器放置在 FB 中有效。该选项取决于 FB 属性是否指定“优化块访问”(Optimized block access)(仅允许符号访问)。 要检查现有 FB 访问属性的组态情况,请在项目树中右键单击该FB,选择“属性”(Properties),然后选择“特性”(Attributes)。如果 FB 指定“优化块访问”(Optimized block access)(仅允许符号访问):
a. 打开 FB 进行编辑。
b. 将计数器指令放在 FB 中的所需位置。
c. “调用选项”(Call options) 对话框出现后,单击“多重背景”(Multi instance) 图标。
仅在将该指令放置于 FB 中后,“多重背景”(Multi instance) 选项才可用。
d. 如有需要,请在“调用选项”(Call options) 对话框中重命名计数器。
e. 单击“确定”(OK)。 计数器指令将出现在编辑器中并且预设值和计数值的类型为INT,而 IEC_COUNTER 结构将出现在“FB 接口”(FB Interface) 的“静态”(Static) 下。
f. 如有需要,请在计数器指令中将类型从 INT 更改为其它类型之一。计数器结构将相应更改。
g. 如有必要,打开 FB 接口编辑器(可能需要单击小箭头以展开视图)。
h. 在“静态”(Static) 下,找到刚刚创建的计数器结构。
i. 在此计数器结构的“保持性”(Retain) 列中,改为选择“保持性”(Retain)。此后只要从另一程序块调用此FB,都将利用此接口定义(包含标有保持性的计数器结构)创建背景数据块。
4. CTU 运算(加计数)
当参数 CU 的值从 0 变为 1 时,CTU 计数器会使计数值加1。CTU 时序图显示了计数值为无符号整数时的运行(其中,PV = 3)。
如果参数 CV(当前计数值)的值大于或等于参数PV(预设计数值)的值,则计数器输出参数 Q = 1。
如果复位参数 R 的值从 0 变为 1,则当前计数值重置为 0。
时序图
![](/assets/blank.gif)
编写程序段1
I0.0接通 参数 CU 的值从 0 变为 1 时,CTU 计数器会使计数值加1。
![](/assets/blank.gif)
参数 CV(当前计数值)的值大于或等于参数PV(预设计数值)的值,则计数器输出参数 Q = 1。Q0.0 接通,一直到置位,或者加计数一直加到正整数限值。
![](/assets/blank.gif)
I0.1 接通 复位参数 R 的值从 0 变为 1,则当前计数值重置为 0。
![](/assets/blank.gif)
5. CTD 运算(减计数)
当参数 CD 的值从 0 变为 1 时,CTD 计数器会使计数值减 1。CTD 时序图显示了计数值为无符号整数时的运行(其中,PV = 3)。
如果参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。
如果参数 LOAD 的值从 0 变为 1,则参数PV(预设值)的值将作为新的CV(当前计数值)装载到计数器。
时序图
![](/assets/blank.gif)
编写程序段2
参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。Q0.1动作
![](/assets/blank.gif)
I0.3接通 参数 LD 的值从 0 变为 1,则参数PV(预设值)的值3将作为新的CV(当前计数值)装载到计数器。
![](/assets/blank.gif)
I0.3 断开 I0.2接通 参数 CD 的值从 0 变为 1 时,CTD 计数器会使计数值减 1。
![](/assets/blank.gif)
直到 参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。Q0.1动作
减计数Q接通直到 重新重载或者减计数减到负整数限值。
![](/assets/blank.gif)
6. CTUD 运算(加计数和减计数)
当加计数 (CU) 输入或减计数 (CD) 输入从 0 转换为 1 时,CTUD计数器将加 1 或减 1。CTUD 时序图显示了计数值为无符号整数时的运行(其中 PV = 4)。
如果参数 CV 的值大于等于参数 PV 的值,则计数器输出参数QU = 1。
如果参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。
如果参数 LOAD 的值从 0变为 1,则参数 PV 的值将作为新的 CV 装载到计数器。
如果复位参数 R 的值从 0 变为1,则当前计数值重置为0。
时序图
![](/assets/blank.gif)
编写程序段3
参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作
![](/assets/blank.gif)
I0.7接通 参数 LD 的值从 0变为 1,则参数 PV 的值4将作为新的 CV 装载到计数器。参数 CV 的值大于等于参数 PV 的值,则计数器输出参数QU = 1。Q0.2动作
![](/assets/blank.gif)
I0.7 断开 I0.5接通 减计数 (CD) 输入从 0 转换为 1 时,CTUD计数器将减 1
![](/assets/blank.gif)
直到 参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作
![](/assets/blank.gif)
I0.6接通 参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作
![](/assets/blank.gif)
I0.4 接通 加计数 (CU) 输入从 0 转换为 1 时,CTUD计数器将加 1
![](/assets/blank.gif)
参数 LD 的值从 0变为 1,则参数 PV 的值4将作为新的 CV 装载到计数器。参数 CV 的值大于等于参数 PV 的值,则计数器输出参数QU = 1。Q0.2动作
![](/assets/blank.gif)
tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用相关推荐
- tia v15 添加项目_基于博途V15 西门子S7-1200 星三角启动实例演示
最近一年多,工业自动化搞得不是很多,自己一直在学习物联网相关东西.再加上之前一直使用三菱PLC,诸如FX系列,没有使用过西门子相关PLC,由于项目决定要使用西门子相关产品.就重新开始学习一下吧,用博文 ...
- 博途创建vb脚本实例_基于博途V15 西门子S7-1200 定时器指令应用实例
本篇是<基于博途V15 西门子S7-1200 ...>系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇.也请专业领域的大神批评指正. 感谢大家关注与支持! ...
- 西门子触摸屏修改ip地址_基于博途V15 西门子S7-1200与触摸屏一个简单的例子
本篇是<基于博途V15 西门子S7-1200 ...>系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇.也请专业领域的大神批评指正. 感谢大家关注与支持! ...
- 博途v15模拟量转换_基于博途V15 西门子S7-1200 + 模拟量SM 1234 正反转变频调速实例...
一.准备工作 所需设备:西门子CPU 1215C AC/DC/Rly6ES7 215-1BG40-0XB0 SEW变频器MDX61B+通信模块DFE32B SM12346ES7 234-4HE32-0 ...
- tia v15 添加项目_硬技能,TIA 博途软件界面的介绍
在前面的文章中给大家介绍了TIA 博途软件的安装包等介绍,这次小编给大家介绍一下TIA 博途软件的界面.#电工学习PLC# 你知道吗,在博途软件的自动化项目任务的创建中,我们可以使用portal视图和 ...
- tia v15 添加项目_作为一名机器人集成项目的电气工程师,你及格吗?
职场有风险,入行需谨慎.每个行业光鲜的背后都会存在弊端,只是有的行业更为辛苦.道路不止一条,你可以尝试新的选择,也可以迎难而上坚持下去.对于刚接触机器人自动化的小伙伴,肯定想早日成为一名合格的工程师. ...
- 安装博图v15每次让重启计算机,博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...
西门子博途TIA Portal V15.1的安装,其中很多朋友在安装过程中会遇到很多问题,这里一一说明. 1.电脑安装要求 硬件要求:TIA软件主要是要求电脑内存要大,一般要求至少8GB以上,低于这个 ...
- 西门子300硬件升级包下载_用博途建立西门子触摸屏和S7300PLC的通讯
目前国内流行用昆仑通泰或者威纶通触摸屏做项目,一方面价格便宜,另一方面编程简单.但西门子屏也经常会被用到,所以不得不学.简单写一下会用博图建立西门子触摸屏和S7300PLC的通讯. 西门子触摸屏和PL ...
- tia v15 添加项目_西门子S7-1500plc与S7-300plcPN/IO设备通信-创建项目
西门子S7-1500plc与S7-300plcPN/IO设备通信,PROFINET的CPU支持I device功能,即智能IO设备功能,也就是该PN设备可以同时作为IO控制器和IO设备.一个PN智能设 ...
最新文章
- 可以获取python中输出函数帮助的是_Python帮助函数调试函数 用于获取对象的属性及属性值...
- undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status
- 惠普z840工作站linux,HP Z840 工作站,高清非编工作站
- eclipse集成processing、PApplet、proclipsing 问题
- 策略模式实现支持多种类数据库的DBHelp
- Android9.0 setMasterVolume流程分析(二十三)
- Flutter之Align和AlignmentGeometry
- 英文环境中Wine微信不能显示中文
- 下载并打开Github源码教程
- php照片管理源码,PHP图片管理 Coppermine Photo v1.5.22 多国语言版
- Java全栈开发---Java ERP系统开发:商业ERP(一)UML建模工具的使用
- windows efi分区修复
- php+时间戳+星座,php 根据日期显示星座的简单示例
- nodejs+java微信小程序的律师事务所服务预约平台
- 【优化求解】基于多策略黑猩猩优化算法求解单目标优化问题附matlab代码
- Cartographer中对激光雷达运动畸变的处理方法分析
- matlab分段函数
- gmap 支持python吗_基于GMap.Net的地图解决方案
- 胸肌介绍:肌肉图示和英文名称
- Java IO流笔记