1.   关于脉冲输出

脉冲输出的方法有很多:

如果要产生占空比为50%的脉冲信号:

①     用S7-300PLC的时钟存储器

右键点击PLC,选中时钟存储器,默认存储字节为0。

各时钟存储器的周期和频率如下表所示:

②     采用循环中断

使用循环中断OB35,设置中断执行时间为1000ms

在OB35块中编写程序

程序在第一次执行时,因为M10.0为0,所以给M10.0置位

第二次执行时,M10.0为1,所以M10.0复位。

我们设定OB35执行的时间为1000ms,这样,M10.0就会相隔1s循环置位、复位,就产生的周期为2s的脉冲。

当然如果我们要修改脉冲的周期,只要修改OB执行的时间就可以了,比用PLC的时钟存储器要更灵活。

③    采用定时器定时自动复位的方式产生脉冲

当然我们还可以采用我们的老朋友定时器来产生脉冲

网络1是相隔1s自动复位,网络2为单按钮启停。

这样,第一次M10.0为1时,Q0.0置位

第二次M10.1为1时,Q0.0复位

Q0.0上就可以产生周期为2s占空比为50%的脉冲信号了。

关于网络2的单按钮启停其实也有很多种实现方式,当然这又是另外的故事了。

产生占空比可调的脉冲信号

①    采用两个定时器,如下图,这也是教科书上都会介绍的一种方式。

下图可以产生一个周期为3s的脉冲信号

②   采用IEC定时器实现

S7-300里面我不太喜欢用IEC定时器的原因是因为每用一个定时器都会产生一个DB背景数据块。用S5定时器会更方便一点。

③    用定时器和比较指令

第一个程序段的目的是定时器循环计时,它的当前值是在0-3s之间变化的。

第二个程序段在进行比较的时候要注意,定时器的ET参数为:Elapse time即时间流逝值。是一个32位的time型变量。只要它大于1s时就让它接通。这样Q0.0上也就产生了如上的脉冲信号。

用S5定时器会有些不太一样:

S5定时器里BI的值为剩余时间的ms数除以10,所以在用比较指令的时候,把MW30和200做比较,也就是剩余时间为2s时让Q0.0接通。这样Q0.0上输出的脉冲也是1s低2s高这个样子。

关于定时器的例子我先写这么多了,灵感来自于学生在实验的过程中出现了很多问题,所以就想记录一下。肯定脉冲输出的实现方式还有很多很多,脑子里现在还有几种想法没有放上来,比如可以用自复位的通电延时结合脉冲定时器来实现。

我想如果上面的都掌握了,那么定时器的使用就不是问题了。需要的时候用一个最简单的办法就可以了。

关于PLC的脉冲输出(S7-300)的更多相关文章

  1. S7 300数据块中的变量指定断电保持特性

    利用DB块内变量属性的保持性,勾选上就可以保持了.300PLC数据块默认断电保持.

  2. 西门子 S7-300 PLC 从入门到精通的100个经典问题

    1:使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息?   使用CPU S7 315F, ET 200S以及故障安全DI/DO模块,那么您将调用OB35 的故障安全程序.而且,您已 ...

  3. (原创)使用C#开发高性能PLC上位机监控系统服务器应用程序

    PLC服务器监控系统的特点: 1·使用微软C#面向对象开发语言开发应用程序.2·使用了健壮性与性能良好的SUPER SOCKET服务器通信框架,实现自定义应用层通信协议,支持多台PC客户端访问服务器, ...

  4. PLC攻击(一):应用层攻击

    ​ 转载请注明出处:信安科研人please subscribe my official wechat :信安科研人获取更多安全资讯 参考文献: A Stealth Program Injection  ...

  5. 简单Profibus/DP实验系统的组建

    转自:http://www.dndev.com/Profibus/profibustr/system_4.html 引言: 为了让更多刚接触到Profibus系统的朋友能对Profibus的网络架构及 ...

  6. S7-300CPU存储器介绍及存储卡使用

    1. S7 300存储区概述 S7-300 PLC的存储区可以划分为四个区域:装载存储器(Load Memory).工作存储器(Work Memory). 系统存储器(System Memory)和保 ...

  7. C# 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC

    本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 官方 ...

  8. python 读写西门子PLC 包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC

    本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 nu ...

  9. java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC

    本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...

  10. 对S7通信的连接的理解以及对比CAN通信协议来理解PLC通讯

    对S7通信的连接的理解以及对比CAN通信协议来理解PLC通讯. 对功能块 SFB12 和 SFB13 的R_ID参数的理解 ? 对于同一个数据包.发送方与接收方的R_ID应该相同. 用下图解释 双向连 ...

随机推荐

  1. Java字段名由驼峰命名转换为下划线命名

    private String toUnderlineName(String name) { StringBuilder result = new StringBuilder(); if (name = ...

  2. hibernate的校验

    //不使用@valid进行校验Set<ConstraintViolation<CommonValidator>> validates = validator.validateV ...

  3. shell转义字符

    \n      回车 \b      单词边界 \w      [a-Z0-9]中任意一个字符 \W      [^a-Z0-9] \d      [0-9]中任意一个数字 \D      [^0-9 ...

  4. DELL品牌电脑开机显示supportASsiSt丨pre-Boot SyStem Proforman?

    这个问题,我百度了N个网站,得到的结果都是针对老版本BIOS的 https://wen.baidu.com/question/1647310335599401700.html https://zhua ...

  5. uniapp APP端 跳转微信小程序 完成微信支付功能,并回跳回来

    先保存   参考链接    完成功能在做具体记录 https://blog.csdn.net/qq_40146789/article/details/121262700?spm=1001.2101.3 ...

  6. 5. icon创建

    1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta charset="U ...

  7. js导出表格到excel(合并头)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. iOS底层原理01:源码探索的三种方式

    ios 开发探索源码三种方法 1.下符号断点的形式直接跟流程 2.通过摁住 control + step  into 3.汇编查看跟流程 1.符号断点直接跟流程 以alloc为例: 选择断点Symbo ...

  9. GitLab + Rainbond 打造Devops流程

    GitLab + Rainbond 打造Devops流程 流程 预设项目有两个分支,dev和master dev分支对应dev环境 master分支对应test环境和prod环境 开发在dev中编写代 ...

  10. 攻防世界Web进阶篇——warmup

    打开链接,发现是一张滑稽 查看页面源代码,发现文件 于是打开source.php,发现 打开hint.php,根据提示得知flag在ffffllllaaaagggg文件中 回到source.php,检 ...