中文编程简易PLC一体机的编程指令介绍
指令说明
通过控制器的按键编程
软件都是按 32 路输入,32 路输出设计的,不管实际产品是多少路,程序可设置范围都是 X00-X31,Y00-Y31。 为了提高多路同时控制效率,支持 Xxx-xx,Yxx-xx 这种指定端口范围的多路同时控制指令。程序组分类
1.逻辑控制 —(第 Z17 组,160 行,可以满足大部分要求)
编程逻辑:
如果 xxx 条件满足,那么做 xxx 动作。 如果 xxx 条件:包括“如果”“与”“或”三条指令,可以实现单个或多个输入条件的逻辑运算组合。 做 xxx 动作:包括“输出”“计数”“延时”等指令,可以实现多种动作控制。序号
指令
操作对象
操作参数
1
如果
与
或
端口:X00-X31
端口:Y00-Y31
闭合: 开关接通;
断开: 开关断开;
上跳:开关接通瞬间——上升沿;
下跳:开关断开瞬间——下降沿
计数器:C00-C99
>/</= 0000000-9999900 次
>/</= DC00-DC99,人机界面的计数
计时器:T00-T99
>/</= 00.00 秒-99:59 时
>/</= DT00-DT99,人机界面的延时
2
输出
端口:Y00-Y31
闭合: 开关接通,并自锁;
断开: 开关断开,并自锁;
点动:开关接通,不自锁;
翻转:开关接通/断开切换;
程序组:Z00-Z17
运行:从当前位置启动工作;
停止:停在程序的开始处;
暂停:停在当前位置;
重启:从头开始运行;
快进:当前延时归零;
运行/停止:两者切换;
暂停/运行:两者切换;
3
计数
计数器:C00-C99
空格:让 Cxx 计数 0000000-9999999 次,
=/+/- :给 Cxx 赋值 0000000-9999900 次
4
延时
计数器:T00-T99
空格:让 Txx 计时 00.00 秒-99:59 时
=/+/-:给 Txx 赋值 00.00 秒-99:59 时
: :让 Txx 计时 DTxx,人机界面的延时
2.延时控制/顺序流程控制—Z00-Z15 组,每组 160 步,可设置很多延时控制
编程逻辑:
通过“输出 xxx 动作,等 xxx 时间,再做 xxx 动作,再等 xxx 时间”,可以实现任意开关顺序和时间间隔的延时控制;
通过“如果 xxx 条件成立,程序向下执行,否则等待”实现顺序流程控制; 通过“如果 xxx 条件成立,程序跳转到 xxx 步,否则向下”实现条件转移控制; 通过“循环 xxx 步 xxxxx 次”,实现有限次数的循环控制,循环嵌套控制。上电选项:(其中“上电运行/上电继续” 是带掉电记忆的,只有 Z00-Z01 组有)
上电启动——通电自动从头运行, 上电停止——通电后等待按钮启动或日历定时启动, 上电运行——通电后从上次断电的位置开始运行, 上电继续——通电后继续断电前的状态,是运行就继续运行,是停止就停止。序号
指令
操作对象
操作参数
1
输出
端口:Y00-Y31
闭合: 开关接通,并自锁;
断开: 开关断开,并自锁;
翻转:开关接通/断开切换;
程序组:Z00-Z17
运行:从当前位置启动工作;
停止:停在程序的开始处;
暂停:停在当前位置;
2
延时
立即数:
00.00 秒-99:59 时
立即数以 0.01 秒精度倒计时
定时器:T00-T59
空格:定时器 Txx 以 0.01 秒精度倒计时
=/+/-: 定时器Txx通过=/+/-方式赋值
::让 Txx 计时 DTxx,人机界面的延时
3
计数
计数器:C00-C99
空格:计数器 Cxx 以 1 次为单位计数;
=/+/-:计数器 Cxx=/+/-方式赋值
4
如果
端口:X00-X31
端口:Y00-Y31
闭合/断开-向下:如果条件成立,程序 向下,否则等待;
闭合/断开→xxx 步:如果条件成立,程 序转 xxx 步,否则向下执行;
5
循环
xxx 行 xxxxx 次
无条件跳转到 xxx 行 xxxxx 次
3.日历定时—Z16 组,160 行,可设置 100 多个时段
编程逻辑:
先校准系统时间,然后设置定时时段,当系统时间到了定时时段内,就会执行定时后面的动作。
当只设置了定时,没有设置定日的话,定时指定的时段每天都有效,或在指定的星期日几下都有效。
当只设置了定日,没有设置定时的话,定日指定的时段一天 24 小时都有效。 同时设置了定日和定时的话,则两组指定的时段都满足才有效。 日历定日和开关量输入输出做简单的与运算,可实现定时允许控制。序号
指令
操作对象
操作参数
1
校时
20xx 年 xx 月 xx 日,xx
时 xx 分 xx 秒,
按北京时间校准,星期 x 会自动生成, 有纽扣电池供电保持。
2
定时
xx 时 xx 分 xx 秒- xx 时
xx 分 xx 秒
星期 0123456
指定一天内的时段,精确到秒,可选择
星期日一二三四五六哪一天有效。
3
定日
20xx-20xx 年 xx-xx 月
xx-xx 日
指定年/月/日的时段。
4
与
端口:X00-X31
端口:Y08-Y31
闭合: 开关接通;
断开: 开关断开;
5
输出
端口:Y00-Y31
闭合:时段内闭合,时段外不控制
程序组:Z00-Z17
运行:时段内运行,时段外不控制;
停止:时段内停止,时段外不控制;
通过云服务器或者内置网页编程-1
通过云服务器或者内置网页编程-2
西门子编程里面的各种块(Block)宝宝-OBFBFCDBSFC科普
引言
西门子程序采用结构化编程,把程序分成多个模块,各模块完成相应的功能结合起来就能实现一个复杂的控制系统,就像高级语言一样用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。
结构化编程
STEP7的程序结构 l 线性程序结构 l 分块程序结构 l 结构化程序结构
一、西门子编程里面的块简介
1.编程块概述
变成块汇总
2.程序访问顺序
程序访问
西门子PLC CPU 程序访问顺序:主程序OB块、功能块FB&FC、数据块DB
二、西门子编程各块应用案例分析
1.OB块案例
组织块代号
1.1组织循环(OB1)块 程序循环 OB 在 CPU 处于 RUN 模式时,周期性地循环执行。可在程序循环 OB 中放置控制程序的指令或调用其它功能块(FC 或 FB)。主程序(Main)为程序循环 OB ,要启动程序执行,项目中至少有一个程序循环 OB 。操作系统每个周期调用该程序循环 OB 一次,从而启动用户程序的执行。
1.2延时中断( OB20)块
延时中断块
1、调用“SRT_DINT”指令启动延时中断;
2、当到达设定的延时时间,操作系统将启动相应的延时中断 OB ;
3、图例中,延时中断 OB20 中断程序循环 OB1 优先执行;
4、当启动延时中断后,在延时时间到达之前,调用“CAN_DINT”指令可取消已启动的延时中断。
1.3 循环中断 (OB30)块
循环中断 OB 在经过一段固定的时间间隔后执行相应的中断 OB 中的程序。
循环中断块
1、PLC 启动后开始计时;
2、当到达固定的时间间隔后,操作系统将启动相应的循环中断 OB ;
3、图例中,到达固定的时间间隔后,循环中断 OB30 中断程序循环 OB1 优先执行。
1.4硬件中断 (OB 40)块
硬件中断 OB 在发生相关硬件事件时执行,可以快速的响应并执行硬件中断 OB 中的程序(例如立即停止某些关键设备)。
硬件中断块
使用硬件中断需要注意 什么?
1、一个硬件中断事件只能分配给一个硬件中断 OB ,而一个硬件中断 OB 可以分配给多个硬件中断事件;
2、用户程序中最多可使用50个互相独立的硬件中断 OB ;数字量输入和高速计数器均可触发硬件中断;
3、中断 OB 和中断事件在硬件组态中定义;在 CPU 运行时可通过“ATTACH”和“DETACH”指令进行中断事件重新分配;
4、如果“ATTACH”指令的使能端 EN 为脉冲信号触发,在使用“ATTACH”指令进行中断事件重新分配后;若 CPU 的操作模式从 STOP 切换到 RUN 时执行一次,包括启动模式处于 RUN 模式时上电和执行 STOP 到 RUN 命令切换,则硬件中断 OB 和硬件中断事件将恢复为在硬件组态中定义的分配关系;
5、如果一个中断事件发生,在该中断 OB 执行期间,同一个中断事件再次发生,则新发生的中断事件丢失;
6、如果一个中断事件发生,在该中断 OB 执行期间,又发生多个不同的中断事件中,则新发生的中断事件进入排队,等待第一个中断 OB 执行完毕后依次执行。
1.5时间错误( OB80 )块
当 CPU 中的程序执行时间超过最大循环时间或者发生时间错误事件(例如,循环中断 OB 仍在执行前一次调用时,该循环中断 OB 的启动事件再次发生)时,将触发时间错误中断优先执行 OB80 。由于 OB80 的优先级最高,它将中断所有正常循环程序或其它所有 OB 事件的执行而优先执行。
时间错误块
1.6诊断错误 (OB82)
可以为具有诊断功能的模块启用诊断错误中断功能来检测模块状态。
诊断错误块
触发诊断错误中断时,CPU 如何响应?
1、启用诊断错误中断且 CPU 中创建了 OB82 ;
2、OB82 是唯一支持诊断错误事件的 OB ;一次只能报告一个通道的诊断错误;
3、如果多通道设备的两个通道出现错误,则第二个错误只会在以下情况触发 OB82 :第一个通道错误已清除,由第一个错误触发的 OB82 已执行完毕,并且第二个错误仍然存在;
4、事件的进入或离开都会触发一次 OB82 ;
5、触发 OB82 ,CPU 不会进入 STOP 模式。
2.FB块案例
【FB块】有时候也叫函数块是一种代码块,它将输入、输出和输入/输出参数永久地存储在背景数据块中,从而在执行块之后,这些值依然有效、。 所以函数块也称为“有存储器”的块。函数块也可以使用临时变量。 临时变量并不存储在背景数据块中,而用于一个循环。
单背景数据块
3.FC块案例
【FC块】函数可以使用全局数据块 (数据块用于存储用户数据。 数据块分为可由所有代码块访问的全局数据块,以及分配给特定功能块调用的背景数据块。) 永久性存储数据。
功能块参数传递
4.DB块案例
【DB块 】数据块用于存储程序数据。 因此,数据块包含由用户程序使用的变量数据。 全局数据块存储所有其它块都可使用的数据。数据块的最大大小因 CPU 的不同而各异。 可以以自己喜欢的方式定义全局数据块的结构。还可以选择使用 PLC 数据类型 (UDT) 作为创建全局数据块的模板。
DB数据块
5.SFC&SFB块案例
【SFB】 系统功能块是集成在 S7 CPU 中的功能块。SFB 是操作系统的一部分,不作为程序的一部分而被加载。同 FB 一样,SFB 也是“具有内存”的块。必须给 SFB 创建实例数据块,然后将它们作为程序的一部分下载到 CPU 中。
S7 CPU 给 SFB 提供下列功能:
• 通过已组态的连接进行通讯
• 集成的特殊功能 SFB29 "HS_COUNT"
【SFC】 作系统,不能作为程序的一部分而被加载。同 FC 一样,SFC 也是“具有内存”的
块。
S7 CPU 给 SFC 提供下列功能:
• 复制功能和块功能 • 检查程序 • 处理时钟和运行仪表 • 传送数据集 • 在多值计算模式中将事件从一个 CPU 传送到其它 CPU 中
• 处理日历和延时中断 • 处理同步错误、中断和异步错误 • 关于静态和动态系统数据的信息,例如,诊断
• 过程映像更新以及位域处理 • 寻址模块 • 分布式 I/O • 全局数据通讯
• 通过未组态的连接进行通讯
三、结构化(模块化)编程
结构化编程
结构化编程:处理复杂自动化控制任务的过程,为了是任务易于控制,常把过程要求类似或者相关的功能进行分类,分割为用于几个任务的通用解决的小任务,这些小任务以相似的程序段表示即块,结构化编程的特点每个块都可以被多次调用。
四、总结
个人觉得西门子编程主程序写在OB块里面,子程序写在功能块FC/FB里面,DB作为数据块,可用于静态数据存储,SFC块是CPU集成的功能块相当于子程序!程序编写主要靠积累平时多积累有效的程序模块或者样例。
声明: 本作品纯属个人娱乐学习交流,严禁使用其作为商业用途,图片均来至于西门子仿真软件及选型手册、网络,如有版权纠纷请及时告知,谢谢!
相关问答
西门子PLC肿么编写脉冲程序-ZOL问答
Y=X-6400/25600*100,你的程序就按照这条公式编程就行了。有用(0)回复baidu_chuiguoyan一般直接加上或者减去一个数即可,如果是个常数,直接在plc里编程。如.....
怎么用PLC300计算电机累积运行时间???-ZOL问答
用PLC300计算电机累积运转时间的方法:假设测量周期约为一秒,可在被测信号的上升沿产生中断,在硬件中断组织块OB40中读取实时时钟的时间,记录中断的次数,计算从...
欧姆龙plc程序肿么上传到电脑里-ZOL问答
先编译,然后点PLC下拉菜单,选在线工作,弹出准备连接PLC,点是,如果程序选的PLC和实际的相同,并且COM口设置正确就没问题了。连上以后,点PLC下拉菜单-->传送-->从...
三菱PLC程序怎么备份-ZOL问答
对会编程的人来说是雕虫小技,但不会使用时间锁程序来达到某种目的,因为编这种程序的人会让人看不起。有用(0)回复dominicpro这个貌似是间接绑架客户吧有用...
用手持编程器怎么修改三菱PLC内部时间继电器数值啊-ZOL问答
可以直接修改,需要PLC在STOP状态,选择你需要修改的时间继电器修改数值。有用(0)回复19932874直接用电脑有用(0)回复p9701.PLC型号是否设定正确;2.下载...
怎么样具体实现三菱PLC通过485接口与电脑的通信?越详细...
1)三菱FX2NFX3U有一个编程口,用485BD板可以扩展一个485通信口2)硬件实现...4)三菱FX3U支持modbus通信,可以吧三菱PLC串口当成modbus从站,用标准的协议,使用...
ABPLC编程软件程序肿么添加标题注解-ZOL问答
更多频道频道导航辅助工具手机性能天梯图显卡天梯图CPU天梯图电源天梯图固态硬盘天梯图新品日历3条回答:【推荐答案】如果是TAG,点右键,TAG属性,窗口...
松下FP1系列PLC编程软件-ZOL问答
可以给plc设置密码,有4个等级的防护有用(0)回复精品应用推荐新浪微博天气通淘宝特价版UC浏览器相关问题松下G7的续航能力怎么样?2123浏览9回答拍婚...
PLC控制系统,在设备运行到预设的小时以后自动停机,怎么重新...
更多频道频道导航辅助工具手机性能天梯图显卡天梯图CPU天梯图电源天梯图固态硬盘天梯图新品日历2条回答:【推荐答案】你们如果是设备使用单位,很可能...
在一台电脑上,如何实现PLC与excel的数据沟通!-ZOL问答
因为涉及到很多数据计算转换,虽然PLC里有很多内置的数据运算,但是其基本还是基于单片机运算得到,和EXCEL里的运算还有很大的差别,要实现这一步还早。不管是PLC...