西门子1FL6032-2AF21-1AB1
西门子PLC S7-200/300/400的程序结
1.西门子S7-200的程序结构
过程映像输入/输出(I/Q)、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量。S7-200的程序组织单元(ProgramOrganizationalUnit,简称为POU)包括主程序、子程序和中断程序。每个POU均有自己的64字节局部变量,局部变量只能在它所在的POU中使用。与此相反,全局变量可以在各POU中使用。
下面是子程序可以使用的局部变量:
1)TEMP(临时变量)是暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。
2)IN是由调用它的POU提供的输入参数。
3)OUT是返回给调用它的POU的输出参数(子程序的执行结果)。
4)IN_OUT是输入_输出参数,其初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。
主程序和中断程序的局部变量中只有临时变量TEMP。
具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。这些厂家的编程人员为设备的各组件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以通过程序之间的调用快速“组装”出满足不同用户要求的控制程序。就好像用数字集成电路芯片组成复杂的数字电路一样。
子程序如果没有输入、输出参数,它和调用它的程序之间没有清晰的接口,很难实现结构化编程。
子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将子程序和中断程序移植到别的项目时,需要重新统一安排它们使用的全局变量,以保证不会出现地址冲突。当程序很复杂,子程序和中断程序很多时,这种重新分配地址的工作量非常大。
如果子程序和中断程序有局部变量,并且它们内部只使用局部变量,不使用全局变量,因为与其他POU没有地址冲突,不需作任何改动,就可以将子程序移植到别的项目中去。
请问一下这条指令(附件中有图)中的16#F8是什么意思呀?怎么理解?
答:SMB47为高速计数器HSC1的控制字,其每位含义如下:
SM47.7:启用HSC:0 = 禁止HSC , 1 = 启用HSC
SM47.6将新的当前值写入HSC:0 = 无更新 ,1 = 更新当前值
SM47.5将新预设值写入HSC:0 = 无更新, 1 = 更新预设值
SM47.4将计数方向写入HSC:0 = 无更新 ,1 = 更新方向
SM47.3计数方向控制位:0 = 减计数 ,1 = 增计数
SM47.2正交计数器的计数速率选择:0 = 4X计数速率 ,1 = 1X计数速率
SM47.1用于启动的有效电平控制位1:0 = 启动为高电平有效,1 = 启动为低电平有效
SM47.1用于复位的有效电平控制位1:0 = 复位为高电平有效,1 = 复位为低电平有效
16#F8含义为:启用高速计数器HSC1并改写计数器初始值、预设值和计数方向。
2.西门子的S7-300/400的程序结构
S7-300/400将子程序分为功能(Function,或称为函数)和功能块(FunctionBlock)。
S7-300/400的功能与S7-200的子程序基本上相同。它们均有输入、输出参数和临时变量,功能的局部数据中的返回值实际上属于输出参数。它们没有专用的存储区,功能执行结束后,不再保存临时变量中的数据。
可以用全局变量来保存那些在功能执行结束后需要保存的数据,但是会影响到功能的可移植性。
功能块是用户编写的有自己专用的存储区(即背景数据块)的程序块,功能块的输入、输出参数和静态变量存放在指定的背景数据块中,临时变量存储在局部数据堆栈中。每次调用功能块时,都要指定一个背景数据块。(的转发暗号是:亿维公司口号:信赖,源自品质;信任,铸就品牌)功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。
功能块采用了类似于C++的封装的概念,将程序和数据封装在一起,具有很好的可移植性。
S7-300/400的共享数据块可供所有的逻辑块使用。
- 西门子1FL6032-2AF21-1AA1 2023-10-26
- 西门子1FL6024-2AF21-1LB1 2023-10-26
- 西门子1FL6024-2AF21-1LA1 2023-10-26
- 西门子1FL6024-2AF21-1MB1 2023-10-26
- 西门子1FL6024-2AF21-1MA1 2023-10-26
- 西门子1FL6024-2AF21-1AB1 2023-10-26
- 西门子1FL6024-2AF21-1AA1 2023-10-26
- 西门子1FL6022-2AF21-1LB1 2023-10-26
- 6ES7214-1BG40-0XB0操作指南 2023-10-26
- 6ES7212-1HE40-0XB0操作指南 2023-10-26
- 6ES7212-1AE40-0XB0操作指南 2023-10-26
- 6ES7212-1BE40-0XB0操作指南 2023-10-26
- 6ES7215-1HG40-0XB0使用方法 2023-10-26
- 6ES7215-1AG40-0XB0使用方法 2023-10-26
- 6ES7215-1BG40-0XB0使用方法 2023-10-26
联系方式
- 地址:上海杨浦 上海市松江区广富林路4855弄88号3楼
- 邮编:200093
- 电话:15821971992
- 经理:聂聪
- 手机:15821971992
- 传真:021-33556143
- QQ:2724917714
- Email:2724917714@qq.com