摘要: 重构这个词是PC编程中的术语,意思是当写第一遍程序时,因对程序逻辑不甚明白,程序逻辑有点乱,写完后重新理了一下思路,对程序的结构、变量命名等以更好的方式重新了一遍,这个过程叫重构。第二遍的程序逻辑清晰易懂。 和西门子论坛的几位版主讨论后,他们提供了很好的建议,我重构了这个模拟量程序,比以前更简单,更 阅读全文
posted @ 2017-09-04 12:20 丁丁学习笔记 阅读(3301) 评论(0) 推荐(0)
摘要: 博途的间接寻址和S7-300/400大不一样。博途中的间接寻址主要用peek/poke指令,peek/poke指令不能用于优化的数据块。优化数据块可以用数组类寻址。这次的控制任务是模拟类的批量处理,s7-300/400模拟量批量处理很繁琐。 控制任务 把数量不定的模拟量转换成工程量,然后保存到指定的 阅读全文
posted @ 2017-09-01 10:15 丁丁学习笔记 阅读(9885) 评论(0) 推荐(0)
摘要: 我们知道在高级语言中普遍使用泛型,那么在PLC中是否可以使用泛型呢?可以,但罗嗦。。 控制要求 求数组中的最大值,数值类型包括Real和Int,我们这里选择两种类型,控制代码量。 控制程序 一 array是传进来的数组,可以是Int或Real类型。但有大小限制,长度必须小于maxSize。后面我们会 阅读全文
posted @ 2017-07-17 14:54 丁丁学习笔记 阅读(8516) 评论(5) 推荐(0)
摘要: 还记得第一篇博客中,我们在状态机中手写上升沿来处理有别于传统的一键启停程序,那个手写的上升沿就是优化手段。stateflow状态机是带事件的,事件本身支持上升沿和下降沿等事件,在这里,如果我们选择用事件来作沿触发,会导致程序不可读,很复杂,所以我们手写上升沿,保证了程序的简洁。请看下图。 那么我们不 阅读全文
posted @ 2017-07-12 11:23 丁丁学习笔记 阅读(2836) 评论(2) 推荐(0)
摘要: 这篇比较简单了,我就直接上图了,不多废话。 一、选择求解器,一定要选择定步长的。 二、右击Chart状态机,出现图上菜单 三、左边红色的勾选择,选择右侧的菜单,然后点击Generate Code按钮,这个按钮被菜单覆盖了。 四、会在红色目录里出现optimize.scl文件 五、双击TIA Port 阅读全文
posted @ 2017-07-12 10:08 丁丁学习笔记 阅读(5356) 评论(3) 推荐(2)
摘要: 今天我们接着上次的控制任务,加入历史状态,这个任务会比较复杂,象这样的任务我们倾向于自动生成PLC程序,自己写容易出错。但为了演示,我们可以尝试一下。言归正传,下面是我们的控制任务。 控制任务 这次的任务是基于上次的,增加的一个急停按钮,当按下EMStop急停按钮后,设备马上停止,等排除故障后,希望 阅读全文
posted @ 2017-07-12 09:24 丁丁学习笔记 阅读(3522) 评论(0) 推荐(0)
摘要: 我们今天简要介绍RS指令在状态机中怎么处理的。有些设备按下停止按钮后,没有马上停止,而是到原点后才停止,那么这种情况在状态机中如何表示呢?我们以案例说明之,下面是我们的控制描述。 控制描述 小车从左位开始,从左向右行使,到达右位后停5秒,然后从右向左运行,到达左位后停3s,继续向右运行。当按下停止按 阅读全文
posted @ 2017-07-11 14:29 丁丁学习笔记 阅读(3211) 评论(0) 推荐(0)
摘要: 控制任务 大家好,今天我们用状态机描述稍复杂的实例,同时用LAD和ST语言写状态机.我们的控制任务如下: 真空泵A和真空泵B, 按下启动按钮后, 泵A启动, 3秒后泵B也启动, 此时泵A仍运行, 当容器真空达到后, 泵B停止, 泵A继续运行, 维持容器真空. 当按下停止按钮后, 泵A停止. 再次按启 阅读全文
posted @ 2017-07-09 19:37 丁丁学习笔记 阅读(3989) 评论(0) 推荐(1)
摘要: 状态机的一般概念 过去我在学习PLC编程时,看的大部分书仅仅停留在软件的操作上,没有真正讲述如何组织程序,这里我们讲一个通用的描述控制算法的方法,就是状态机,和SFC很类似,其实SFC也是源于状态机啦。状态机是UML中的概念,在嵌入式开发中应用很广,但在PLC编程中基本没有流行。下面是一张用matl 阅读全文
posted @ 2017-06-17 19:38 丁丁学习笔记 阅读(10223) 评论(1) 推荐(3)
摘要: 搞PLC编程多年,一直不知道状态机,学习matlab后,发现状态机编程异常方便,过去很多编程时的疑惑豁然开朗起来。今天跟大家分享一下如何在STL中使用状态机。 下面是用状态机描述的控制任务。 这个状态机较简单,那如何在STL中把它描述出来呢? 这里我们选择用JL指令。。。我就直接上代码了,一看便知。 阅读全文
posted @ 2017-06-17 17:04 丁丁学习笔记 阅读(3352) 评论(0) 推荐(0)