关于PLC的脉冲输出(S7-300)
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)的更多相关文章
- S7 300数据块中的变量指定断电保持特性
利用DB块内变量属性的保持性,勾选上就可以保持了.300PLC数据块默认断电保持.
- 西门子 S7-300 PLC 从入门到精通的100个经典问题
1:使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息? 使用CPU S7 315F, ET 200S以及故障安全DI/DO模块,那么您将调用OB35 的故障安全程序.而且,您已 ...
- (原创)使用C#开发高性能PLC上位机监控系统服务器应用程序
PLC服务器监控系统的特点: 1·使用微软C#面向对象开发语言开发应用程序.2·使用了健壮性与性能良好的SUPER SOCKET服务器通信框架,实现自定义应用层通信协议,支持多台PC客户端访问服务器, ...
- PLC攻击(一):应用层攻击
转载请注明出处:信安科研人please subscribe my official wechat :信安科研人获取更多安全资讯 参考文献: A Stealth Program Injection ...
- 简单Profibus/DP实验系统的组建
转自:http://www.dndev.com/Profibus/profibustr/system_4.html 引言: 为了让更多刚接触到Profibus系统的朋友能对Profibus的网络架构及 ...
- S7-300CPU存储器介绍及存储卡使用
1. S7 300存储区概述 S7-300 PLC的存储区可以划分为四个区域:装载存储器(Load Memory).工作存储器(Work Memory). 系统存储器(System Memory)和保 ...
- C# 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 官方 ...
- python 读写西门子PLC 包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 nu ...
- java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...
- 对S7通信的连接的理解以及对比CAN通信协议来理解PLC通讯
对S7通信的连接的理解以及对比CAN通信协议来理解PLC通讯. 对功能块 SFB12 和 SFB13 的R_ID参数的理解 ? 对于同一个数据包.发送方与接收方的R_ID应该相同. 用下图解释 双向连 ...
随机推荐
- SourceInsight中inc文件中的符号不能同步问题
解决方法: 打开Options->Preferences->Syntax Formatting->File Types,然后选中对应的开发语言,如C/C++ Source File, ...
- 解决ubuntu18环境matplotlib无法正常显示中文
首先看看系统装了中文字体没?命令: fc-list :lang=zh 如果没安装,需要去下载或者从win复制一份到ubuntu, 在/usr/share/fonts文件夹下创建一个chinese文件夹 ...
- Git克隆项目到本地
刚进公司实习,居然不知道Git怎么克隆项目到本地,组长丢给我一个TFS账号(Azure DevOps就是以前的TFS) 1.首先在本地选择一个文件目录,选择Git Bash Here 打开一个Git ...
- docker 可视化平台Portainer搭建
1.部署步骤 docker pull portainer/portainer docker run -d -p 9001:9000 \--restart=always \-v /var/run/doc ...
- 看K线学炒股(8.9)
今天是食品饮料类题材大涨的一天,相应板块涨了6个多点,看着真是诱人.我以前关注的两只股票:海天味业和三全食品,今天都大涨.三全食品接近涨停.这种票容易选出来但也很难拿住.比如前些天买入了,结果8.5的 ...
- unity笔记001
熟悉场景和物体的基本操作,q移动场景,e旋转物体,放大缩小,V键顶点吸附,相比快捷键,还是喜欢用xyz参数控制
- python学习之路---基础概念扩展:变量,表达式,算法,语句,函数,模块,字符串
对于学过一点编程语言的人,学习python基础知识不难,基本大同小异 本章是根据一本书来学习python的编程(强烈推荐)来记录学习python中的有意思的总结 Python 基础教程(第三版) ...
- Zero-Shot Temporal Action Detection via Vision-Language Prompting概述
1.针对的问题 现有的方法在推断时只能识别之前见过的类别,即训练时出现过的类别,而为每个感兴趣的类收集和注释大型训练集是昂贵的. 2.主要贡献 (1)研究了如何利用大量预训练的ViL模型进行未修剪视频 ...
- linux篇之常用的文本操作命令
命令 功能 cat .tac 显示文本文件 ...
- sql中exists用法
exists关键字介绍 exists强调的是 是否返回结果集,不要求知道返回什么,比如: SELECT * FROM AM_USER WHERE EXISTS (SELECT 1 FROM AM_RO ...