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. NLB+ARR实现IIS下的高可用性负载均衡

    NLB+ARR实现IIS下的高可用性负载均衡 场景: 高可用/可伸缩集群: NLB部署: 很简单, 暂略.   3.ARR部署 ARR全称叫Application Request Router, 是I ...

  2. Centos7 安装Mysql8 主从数据库

    前提条件 准备了两台虚拟机 mysql-master 192.168.30.199, mysql-slave 192.168.30.198 1:官网下载并安装Mysql8 1:安装mysql 1.1: ...

  3. logrotate配置记录

    对于一些比较频繁又没有太大意义的log,可以设定出更严格的切割策略 see https://blog.csdn.net/liuxiao723846/article/details/100120058 ...

  4. unity学习笔记03-渲染管线

    图形数据在GPU上经过运算处理,最后显示在显示器上的过程 游戏→图形API→cpu→(DRAW CALL)交给GPU→顶点处理→图元装配→光栅化→像素处理→缓存 减少DRAW CALL  增加性能 O ...

  5. C# Linq不同类型数组之间的转换

    string[] strArray = "a,b,c,d,e,f,g".Split(new char[]{ ',' }); int[] intArray; //C# 3.0下用此句 ...

  6. 将\u8BF7字符串转换为汉字

    转发自  将\u8BF7\u9009\u62E9 字符串转为汉字的代码_javascript技巧_脚本之家 链接:https://www.jb51.net/article/25187.htm

  7. FTP为什么越来越不好用了?要如何替代?

    FTP相信很多人都不陌生,作为世界范围内第一个文件传输协议,FTP解决了互联网文件传输需求,至今已被广泛使用30多年.但很多人现在慢慢发现,FTP越来越不好用了,或者说越来越无法满足自己需求了,这是为 ...

  8. Expected indentation of 2 spaces but found 4

    预期缩进2个空格,但发现4个 把缩进空格修改后如图

  9. 每日一抄 Go语言死锁、活锁和饥饿概述

    DeadLock package main import ( "fmt" "runtime" "sync" "time" ...

  10. TypeScript - 安装,类型

    // 要使用typescript需要全局安装 通过tsc -v 来验证是否安装成功 npm i -g typescript// ts 文件中完全可以写js语法, 完全兼容js // ts 本身在运行时 ...