程序块是显示当前项目包含的程序列表,一般初始状态共有三个,主程序、子程序和中断程序,如下图;

当然,鼠标右键选择某一个程序块,可以重命名,支持中文,然而一个项目中,只能有一个主程序,也必须有一个主程序,所以主程序是无法删除的;

在初始状态下,想插入子程序,有两种方案,一种是如下左图,在左侧的程序块中插入;另一种是如下右图,在程序编辑区标题栏鼠标右键也可以插入子程序和中断程序;

如果程序区标题栏只有主程序,如下图

在这种情况下,只需要鼠标左键双击程序块中想要显示的程序名即可,如下图

解释下主程序、子程序和中断程序的含义和作用

主程序:

1、在许多编程语言中也称为主函数,是程序运行开始的地方;

2、在C语言或C++编程语言,main的函数原型如下所示:

1

2

3

int main(void)

int main()

int main(int argc, char *argv[])

3、既然是开始的地方,所以只能有一个,而且必须有一个;

4、主程序执行结束,整个软件结束运行,所以主程序一般是循环往复执行的;

5、主程序不可以被任何其他程序调用;

6、主程序可以单独运行,可以没有子程序;

子程序

首先,我个人理解的为什么需要写子程序,目的很简单,试程序更加简洁、易读、功能划分明朗、易于修改、易于重复利用某项功能;

1、对于整个程序而言,子程序可以是某一个特定的功能,把此功能写成子程序,可以重复调用,所以这个功能被写成子程序,最好满足两点,一点是此功能程序行数很多,另一点是此功能需要被重复调用,如果这两点都不满足,那建议直接在主程序中写出即可,标注好注释;

2、由上我们可以知道,子程序一般不能单独运行,因为只是程序的一个片段,只是一个功能;

3、子程序可以被任何程序调用,子程序也可以调用子程序,但是最好不要层层嵌套,一方面不易于理解,另一方面也影响程序运行时间;

4、子程序运行结束后,程序继续运行主程序,整个程序不会结束;

中断程序

中断程序也是子程序的一种,只不过是特殊的一种;

1、  中断程序是为处理中断事件而事先编好的程序。

中断事件:它是一个事件,是中断产生的事件;

中断:是一个过程,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机立即中止现行程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这整个过程称为程序中断;

所以中断事件就是,一个意外的过程产生的事件;

中断事件是中断程序的导火索,触发条件,例如,鸡蛋掉落在地上,打碎了,需要打扫干净;中断事件就是鸡蛋掉在地上,打碎了,这件事就是在正常生活中的意外事件,打扫干净就是中断程序;需要打扫干净就是调用中断程序;

而调用中断程序是随机事件,是中断事件发生才会调用的;

在PLC的应用中,例如电力系统出现故障时,可能引发多个断路器相继跳闸。为了分析故障的起因,需要及时准确记录事故发生的时间。可以用硬件中断来完成这一任务。

在出现一个中断事件时,当前正在执行的程序在当前指令执行完后被停止执行(被中断),操作系统将会调用一个用户编写的分配给该事件的中断程序(S7-300/400称为组织块)。中断程序被执行完后,被暂停执行的程序将从被中断的地方开始继续执行。这一过程不受PLC扫描工作方式的影响,因此使PLC能迅速响应中断事件。换句话说,中断程序不是在每次扫描循环中处理,而是在需要时才被及时地处理。

2、中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。

3、在中断程序中不能改写其他程序使用的存储器,最好使用局部变量。

4、中断程序应实现特定的任务,应“越短越好”;

主程序、子程序、中断程序具体的编写后面陆续会更新

西门子200SMART(四) 程序块相关推荐

  1. 西门子200恒压供水梯形图_实战案例分享‖ 西门子200SMART完成恒压供水系统项目...

    原标题:实战案例分享| 西门子200SMART完成恒压供水系统项目 一,实验指南 1. 实验目的 恒压供水系统,密闭在水池地下,三台主泵加一台辅佐泵.用水量少或没有 用水时,只开辅佐泵.当检测到水压变 ...

  2. 三菱R系列PLC与西门子200Smart简单CPU通讯通讯

    项目配置: 三菱PLC型号:R08ENCPU 以太网接口模块:RJ71EN71(E+IEF):IP地址:192.168.3.10 西门子200smart:ST20 IP地址:192.168.3.20 ...

  3. 西门子200smart与电流表Modbus RTU通讯

    这里简单介绍下 使用西门子200smart PLC与电流表进行 Modbus RTU通讯 关于Modbus 通讯可自行查阅资料,这里不做过多赘述,不说废话直接开始. 1.接线 下图1. S7-200 ...

  4. 智能过滤系统 西门子200smart与昆仑通态触摸屏做的自动过滤系统

    智能过滤系统 西门子200smart与昆仑通态触摸屏做的自动过滤系统. 自动反洗,自动正洗,自动过滤.数据自动存盘.全自动无人值守系统.供初学者参考学习.9615637753010817微微一笑很倾城

  5. 西门子200smart模拟量滤波防抖PLC程序,能实现电流电压和热电阻模拟量信号的采集

    西门子200smart模拟量滤波防抖PLC程序,能实现电流电压和热电阻模拟量信号的采集,有滤波,有高位和低位报警,采用for循环指令和间接寻址,让程序简单好用,并且针对程序,录制了视频讲解,详细的介绍 ...

  6. 西门子200smart,MODBUS RTU轮训实例

    西门子200smart,MODBUS RTU轮训实例,读取 写入16台温控器数据,通过间接寻址,分配各温控器数据,程序已经过项目验证,注释详细,现PLC程序,附送温控器通讯协议文件. ID:48106 ...

  7. 西门子200smart与3台欧姆龙e5cc温控器和3台台达MS300变频器通讯程序

    西门子200smart与3台欧姆龙e5cc温控器和3台台达MS300变频器通讯程序 器件:西门子s7 200 smart PLC,扩展模块SB CM01,3台台达MS300变频器,3台欧姆龙E5cc ...

  8. 西门子200smart与安川V1000变频器modbus通讯

    西门子200smart与安川V1000变频器modbus通讯 1,读写变频器的内部参数,状态字,控制字 2,控制变频器正反转,停止,读电压电流 3,设置变频器输出频率 有详细注释,简单易懂 ID:69 ...

  9. 基于西门子200smart系列化工反应釜程序 系统进行两路PID恒温升压调节

    基于西门子200smart系列化工反应釜程序,该程序仅用于学习探讨. 功能: 1.系统进行两路PID恒温升压调节 : 2.两路PID手自动切换: 3.压力.温度等检测. 具有如下控制: 参数设置.报警 ...

最新文章

  1. jsp mysql 图片路径,请教JSP中怎么向MySql中存入和取出图片
  2. UVA-10714 Ants---蚂蚁模拟
  3. LNMP安装目录及配置文件位置
  4. Ubuntu 中sendmail 的安装、配置与发送邮件的具体实现
  5. AM335X的USB otg网卡(RNDIS /Ethernet Gadget)调试
  6. linux中创建目录树,如何在C/Linux中创建目录树?
  7. 1.php查询数据,查询数据 - ThinkPHP 5.1 完全开发手册
  8. php 時間比較,PHP用strtotime()函數比較兩個時間的大小實例詳解
  9. Hdu - 2647 - Reward
  10. docker开启otter服务mysql单双向同步数据
  11. cni k8s 插件安装_实现K8S中Pod带宽限制
  12. 异步读写之利用完成历程
  13. IBM携手百洋医药 将沃森超级电脑带给中国肿瘤科医师
  14. 朱晔的互联网架构实践心得S1E8:三十种架构设计模式(下)
  15. 码云 VS首次提交代码报错:failed to push some refs to 'https://gitee.com/Liu_Cabbage/ASP.NET-MVC-QQ-Connect.git'
  16. dbunit测试dao_使用DbUnit和Anthill控制您的测试环境
  17. UnityWebPlayer屏蔽右键及全屏
  18. Leetcode_206_Reverse Linked List
  19. C#工控上位机开发-->1、C#快速编程入门
  20. 西安到底需不需要互联网?

热门文章

  1. 拉普拉斯变换和拉普拉斯分析基于matlab总结
  2. sqluldr2导出
  3. “车马很慢”的中国邮政变快了
  4. python的两种计时方式
  5. LeetCode - 6. Zigzag Conversion (C)
  6. 百度高管持续“洗牌 ” ,市值仅为阿里腾讯的 1/10
  7. python小海龟turtle库实现太阳花
  8. 64位eclipse免安装版下载
  9. VMware Workstation12的安装(虚拟机)
  10. Halcon学习---光学字符训练、识别(OCR)算子