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. Fiddle 简单用法

    下载安装后,还要下载证书放到浏览器 https://zhuanlan.zhihu.com/p/439203346

  2. 面试之AQS

    https://blog.csdn.net/wwwzhouzy/article/details/119702170 https://copyfuture.com/blogs-details/20200 ...

  3. AndroidStudio 集成kotlin,以及Kotlin-gradle-plugin-1.5.0.jar 下载失败

    配置Kotlin buildscript { ext.kotlin_version = '1.5.0' repositories { maven{url 'http://maven.aliyun.co ...

  4. IEC104

    IEC10X协议源码 https://github.com/airpig2011/IEC104 一.源码编译 下载源代码并解压 进入文件夹下test目录,对main.c进行修改 我们使用套接字来实现服 ...

  5. ajax thisisunsafe

    ajax 从chrome发出,对方公钥证书不是符合要求CA签发的,则会ssl握手失败,也没有机会强制信任 比如:http代理服务器(三)fiddler[重点] 当然应该可以从ajax指定信任一切服务端 ...

  6. base64 转图片

    data:image+jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg% ...

  7. 镜像问题、简易安装,系统语言更改,中文输入,提高下载速度,Firefox的语言更改,Firefox上网速度慢

    一开始用的镜像不记得是从哪里下载过来的,反正 装好之后分辨率特别低.镜像放在: "D:\迅雷下载\2020大创\Ubuntu\ubuntu-16.04.6-desktop-i386.iso& ...

  8. JSP课设:学生选课系统(附源码+调试)

    JSP学生选课管理系统学生选课管理系统功能概述(1)登录模块分为两种角色:学生角色.教师角色 (2)教师模块:选课管理功能为对课程信息(课程编号.名称.学分)进行添加.修改.删除操作:学生信息功能对学 ...

  9. react 脚手架搭建项目 报错C:\Program Files\nodejs\node_cache\_logs\2022-12-28T14_38_28_286Z-debug-0.log

    报错内容: 解决方法: 第一步: 删除C:\Program Files\nodejs\node_cache\_logs 目录下所有文件 第二步:切换镜像 npm config set registry ...

  10. vscode 部分替换(正则替换)

    1. 数字 \d{n} 2. 数字和字母 [A-Za-z0-9]{n} 常用运算符与表达式 ^ 开始 () 域段 [] 包含,默认是一个字符长度 [^] 不包含,默认是一个字符长度 {n,m} 匹配长 ...