本篇是《基于博途V15 西门子S7-1200 ...》系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇。也请专业领域的大神批评指正。

感谢大家关注与支持!

这是第四篇功能指令,本篇介绍两个简单的定时器指令应用实例。上一篇是《基于博途V15 西门子S7-1200 定时器指令应用实例》,大家可以自行查阅学习。

1.打开已经创建项目

名称为计数器指令应用

2.添加PLC

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。

时序图

编写程序段1

I0.0接通 参数 CU 的值从 0 变为 1 时,CTU 计数器会使计数值加1。

参数 CV(当前计数值)的值大于或等于参数PV(预设计数值)的值,则计数器输出参数 Q = 1。Q0.0 接通,一直到置位,或者加计数一直加到正整数限值。

I0.1 接通 复位参数 R 的值从 0 变为 1,则当前计数值重置为 0。

5. CTD 运算(减计数)

当参数 CD 的值从 0 变为 1 时,CTD 计数器会使计数值减 1。CTD 时序图显示了计数值为无符号整数时的运行(其中,PV = 3)。

如果参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。

如果参数 LOAD 的值从 0 变为 1,则参数PV(预设值)的值将作为新的CV(当前计数值)装载到计数器。

时序图

编写程序段2

参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。Q0.1动作

I0.3接通 参数 LD 的值从 0 变为 1,则参数PV(预设值)的值3将作为新的CV(当前计数值)装载到计数器。

I0.3 断开 I0.2接通 参数 CD 的值从 0 变为 1 时,CTD 计数器会使计数值减 1。

直到 参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。Q0.1动作

减计数Q接通直到 重新重载或者减计数减到负整数限值。

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。

时序图

编写程序段3

参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作

I0.7接通 参数 LD 的值从 0变为 1,则参数 PV 的值4将作为新的 CV 装载到计数器。参数 CV 的值大于等于参数 PV 的值,则计数器输出参数QU = 1。Q0.2动作

I0.7 断开 I0.5接通 减计数 (CD) 输入从 0 转换为 1 时,CTUD计数器将减 1

直到 参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作

I0.6接通 参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作

I0.4 接通 加计数 (CU) 输入从 0 转换为 1 时,CTUD计数器将加 1

参数 LD 的值从 0变为 1,则参数 PV 的值4将作为新的 CV 装载到计数器。参数 CV 的值大于等于参数 PV 的值,则计数器输出参数QU = 1。Q0.2动作

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用相关推荐

  1. tia v15 添加项目_基于博途V15 西门子S7-1200 星三角启动实例演示

    最近一年多,工业自动化搞得不是很多,自己一直在学习物联网相关东西.再加上之前一直使用三菱PLC,诸如FX系列,没有使用过西门子相关PLC,由于项目决定要使用西门子相关产品.就重新开始学习一下吧,用博文 ...

  2. 博途创建vb脚本实例_基于博途V15 西门子S7-1200 定时器指令应用实例

    本篇是<基于博途V15 西门子S7-1200 ...>系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇.也请专业领域的大神批评指正. 感谢大家关注与支持! ...

  3. 西门子触摸屏修改ip地址_基于博途V15 西门子S7-1200与触摸屏一个简单的例子

    本篇是<基于博途V15 西门子S7-1200 ...>系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇.也请专业领域的大神批评指正. 感谢大家关注与支持! ...

  4. 博途v15模拟量转换_基于博途V15 西门子S7-1200 + 模拟量SM 1234 正反转变频调速实例...

    一.准备工作 所需设备:西门子CPU 1215C AC/DC/Rly6ES7 215-1BG40-0XB0 SEW变频器MDX61B+通信模块DFE32B SM12346ES7 234-4HE32-0 ...

  5. tia v15 添加项目_硬技能,TIA 博途软件界面的介绍

    在前面的文章中给大家介绍了TIA 博途软件的安装包等介绍,这次小编给大家介绍一下TIA 博途软件的界面.#电工学习PLC# 你知道吗,在博途软件的自动化项目任务的创建中,我们可以使用portal视图和 ...

  6. tia v15 添加项目_作为一名机器人集成项目的电气工程师,你及格吗?

    职场有风险,入行需谨慎.每个行业光鲜的背后都会存在弊端,只是有的行业更为辛苦.道路不止一条,你可以尝试新的选择,也可以迎难而上坚持下去.对于刚接触机器人自动化的小伙伴,肯定想早日成为一名合格的工程师. ...

  7. 安装博图v15每次让重启计算机,博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...

    西门子博途TIA Portal V15.1的安装,其中很多朋友在安装过程中会遇到很多问题,这里一一说明. 1.电脑安装要求 硬件要求:TIA软件主要是要求电脑内存要大,一般要求至少8GB以上,低于这个 ...

  8. 西门子300硬件升级包下载_用博途建立西门子触摸屏和S7300PLC的通讯

    目前国内流行用昆仑通泰或者威纶通触摸屏做项目,一方面价格便宜,另一方面编程简单.但西门子屏也经常会被用到,所以不得不学.简单写一下会用博图建立西门子触摸屏和S7300PLC的通讯. 西门子触摸屏和PL ...

  9. tia v15 添加项目_西门子S7-1500plc与S7-300plcPN/IO设备通信-创建项目

    西门子S7-1500plc与S7-300plcPN/IO设备通信,PROFINET的CPU支持I device功能,即智能IO设备功能,也就是该PN设备可以同时作为IO控制器和IO设备.一个PN智能设 ...

最新文章

  1. 可以获取python中输出函数帮助的是_Python帮助函数调试函数 用于获取对象的属性及属性值...
  2. undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status
  3. 惠普z840工作站linux,HP Z840 工作站,高清非编工作站
  4. eclipse集成processing、PApplet、proclipsing 问题
  5. 策略模式实现支持多种类数据库的DBHelp
  6. Android9.0 setMasterVolume流程分析(二十三)
  7. Flutter之Align和AlignmentGeometry
  8. 英文环境中Wine微信不能显示中文
  9. 下载并打开Github源码教程
  10. php照片管理源码,PHP图片管理 Coppermine Photo v1.5.22 多国语言版
  11. Java全栈开发---Java ERP系统开发:商业ERP(一)UML建模工具的使用
  12. windows efi分区修复
  13. php+时间戳+星座,php 根据日期显示星座的简单示例
  14. nodejs+java微信小程序的律师事务所服务预约平台
  15. 【优化求解】基于多策略黑猩猩优化算法求解单目标优化问题附matlab代码
  16. Cartographer中对激光雷达运动畸变的处理方法分析
  17. matlab分段函数
  18. gmap 支持python吗_基于GMap.Net的地图解决方案
  19. 胸肌介绍:肌肉图示和英文名称
  20. Java IO流笔记

热门文章

  1. MongoDB工具Robo 3T连接副本集
  2. 盘点武汉小资游玩十大时尚热地
  3. 电话号码对应所有英文
  4. Linux中echo $命令的作用
  5. 球自由落地教程—ps
  6. 机器学习糖尿病预测模型-美国疾控中心CDC25万数据集,生物医药企业科研_论文作业_专利
  7. 复制内容后自动跳转到淘宝客户端
  8. 【手势交互】5. Kinect for Xbox One
  9. tensorflow实现贴对联
  10. Windows下IIS+PHP+MySQL环境搭建,建义收藏,不然等下就不见了)