PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 94|回复: 0

[西门子] TIA博途PLC自动步程序的7种编程方法

[复制链接]
发表于 2024-4-16 09:01:32 | 显示全部楼层 |阅读模式
PLC自动程序的功能是控制设备按照设计的流程进行工作。PLC自动程序的流程编写也有好几种方法,常见的有以下几种:
一、SET/RESET方法
       使用M变量标识步序,当满足步序跳转条件后,将下一步M变量置位,同时将当前步M变量复位。原理简单,易于上手。
       在调试中,增减步序时,会造成M变量的排序混乱,不利于程序维护,易产生错误。在复位操作中,容易有遗漏,增加程序出错几率。常用于动作少,流程简单的流程编写。
二、步编号方法
       使用整型变量作为步序编号,易于理解,便于维护。步序增减,跳转等操作方便,简单,易懂。复位操作时,仅需将变量值改为0。
       编程中需注意,当连续步序的条件同时为真时,步序号在一个PLC周期内连续增加,直至最后一条未导通步序指令,而由步序号触发的其它程序则未被执行。调试时容易漏掉此种情况。
三、WORK & STATE 字方法

       设置两个变量字state word,work word。state word中的位作为步序标志,work word作为跳转目标步序标志。
       当前步序state word中步序位对应的条件满足时,触发work word中下一步对应的位。而后,在PLC顺序扫描至传送指令时,将work word的值赋值给state word,完成步序跳转。
       优点是没有置位,复位操作,同一时刻只有唯一的位置1,跳步时只用将对应的work word 中的位置1即可。复位时,将state word与work word清零,程序会自动将state word中第一位点亮。
       当步序大于16时,可改为DWORD或增加word的数量来增加步序。
四、Wait & Output方法
       需要先建立对应的DB块,用来存储每一步对应的跳转条件和输出对应的word代码。
       再编写对应的wait程序(步序条件),编写时需将条件逻辑逆转编写(即跳转条件不满足时,对应的wait_pending为导通状态。比如跳转条件为需要一个传感器亮,则wait条件中要写此传感器OFF的指令)
       每一步激活wait编码对应的步序条件,当激活的跳转条件完全满足时,wait_pending 会为0,则程序会将步序自动加1,然后激活下一步wait编码对应的条件。程序跳转时,直接改变步序号即可。
       使用对应的表格进行编程,速度快,维护简单,维护人员碰到设备停止状况,只要查找那条wait指令为导通状态即可。
       但步序条件编程逻辑需要写成反向,初次使用者不容易理解。如无流程记录文件,流程的理解比较困难,对改造,维护并不友好,目前很少看到。
五、SCL编写方法
       SCL语言形式为代码形式,阅读理解不如梯形图直观,需要一定的编程基础,对于日常设备维护不是很友好。
       常用于特定功能块的编写,数据的处理等,调试完成后进行封装。
六、GRAPH 流程图方法
       流程图形式编程,不是所有品牌PLC都支持,且只有大型PLC才支持。(1200不支持,仅1500支持)
图形化界面,易于理解。跳步编写简单,对于日常维护非常友好。
       复位,单步运行,都有对应的FB接口。
    但PLC占用资源较多,根据经验,西门子315 PLC,使用step number方式编程,可多写一倍的顺控程序。且当graph中步序达到一定数量后,step 7软件监控会出现卡顿,宕机等情况。
七、DECO 解码指令方法
       解码指令DECO,即将整数转换为Dword中对应的位置1,且当步序产生变化时,PLC必定会重新执行一个扫描周期,不会产生连续跳多个步续的情况。避免了程序中步序触发的指令没有被执行的情况。
       跳转,复位操作编写简单。
       1200PLC可支持DWORD解码(32位),1500可支持LWORD解码(64位)。

感谢优秀工程师的总结与分享!
公众号:  巨控电子( 扫码关注 )      

   微信群:PLC工业自动化社区 (加好友标注:姓名-城市)

西门子WINCC


  • 博途WinCC专业版C/S架构入门指南
  • 咔!咔!咔!自动/停止/手动 - WinCC中的三档转换
  • 按图索数-WinCC中的“地图+数据”
  • WinCC与S7-1500 R/H系统通信
  • 通过Web Service与WinCC交互数据
  • 可缩放矢量图形(SVG)在WinCC中的应用
  • WinCC V7.5典型架构及选型指南
  • 自动语音播报WinCC报警消息
西门子TIA博途
1.S7-PLCSIM Advanced使用入门
2.使用PLCSIM Advanced仿真博途PID
3.使用PLCSIM Advanced仿真博途Modbus_TCP
4.使用PLCSIM Advanced仿真博途S7-1500 OPC UA
西门子TIA博途SCL学习
1.西门子PLC用TIA博途SCL语言写的一个产生随机实数的指令块(学习1)
2.TIA博途SCL编程学习2_sin(x)
3.TIA博途SCL编程学习3_两个数的计算器
4.TIA博途SCL编程学习4_选择法排序
5.TIA博途SCL编程学习5_一串数字的加法
6.TIA博途SCL编程学习6_数组逆序
7.西门子TIA博途S7-1200/1500学习7间接寻址指令PEEK的使用
8.TIA博途SCL编程学习8_计算N天后的日期
9.TIA博途SCL编程学习9_百鸡百钱
10.TIA博途SCL编程学习10_字符串日期转换成DATE数据类型
11.TIA博途SCL编程学习11_多条件与运算
12.TIA博途SCL编程学习12_数组求和两种算法比较
13.TIA博途SCL编程学习13_电机正反转加点动
14.TIA博途SCL编程学习14_填表格
15.TIA博途SCL编程学习15_素数判断

16.TIA博途SCL编程学习16_歌德巴赫猜想验证

17.TIA博途SCL编程学习17_选择法排序

18.TIA博途SCL编程学习19_分数段人数统计

19.TIA博途SCL编程学习19_分数段人数统计

20.TIA博途SCL编程学习20_换钱

21.TIA博途SCL编程学习21_4个数字中的3个数字的排列组合

22.TIA博途SCL编程学习22_奖金计算

23.TIA博途SCL编程学习23_求最大公约数和最小公倍数

24.TIA博途SCL编程学习24_一串数字的加法

25.TIA博途SCL编程学习25_找出1-1000之间的完数

26.TIA博途SCL编程学习26_小球反弹高度

27.TIA博途SCL编程学习27_猴子吃桃

28.TIA博途SCL编程学习28_一个分数序列加法

29.TIA博途SCL编程学习29_五位数分解

30.TIA博途SCL编程学习30_捡鸡蛋

31.TIA博途SCL编程学习31_HelloWorld

32.TIA博途SCL编程学习32_幂
33.TIA博途SCL编程学习33_水仙花数

34.TIA博途SCL编程学习34_完数
35.TIA博途SCL编程学习35_另类比大小
36.TIA博途SCL编程学习36_自然数反转
37.TIA博途SCL编程学习37_数字加密

38.TIA博途SCL编程学习38_三种方法求最大公约数

39.TIA博途SCL编程学习39_友好数
40.TIA博途SCL编程学习40_平方回文数
41.TIA博途SCL编程学习40_斐波那契数列
42.TIA博途SCL编程学习41_大数乘法
43.TIA博途SCL编程学习42_三位数的组合
44.TIA博途SCL编程学习43_新娘和新郎
45.TIA博途SCL编程学习44_韩信点兵
46.TIA博途SCL编程学习45_过桥问题
47.TIA博途SCL编程学习46_分鱼问题
48.TIA博途SCL编程学习47_跳跃游戏






免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-5-1 03:54 , Processed in 0.050769 second(s), 26 queries .

快速回复 返回顶部 返回列表