白山S7-1200PLC西门子代理商原装现货 白山西门子S7-1200PLC代理,白山西门子PLC代理,西门子S7-1200PLC代理,西门子PLC代理
西门子PLC延时中断组织块的应用
PLC的普通定时器的工作与扫描工作方式有关,其定时精度较差。在接通延时定时器的输入信号的上升沿和定时器输出位的上升沿,分别调用SFC1读取CPU中的日期和时间,用IEC功能FC8从其中提取实时时间(TIME_OF_DAY)。设置时间预置值分别为5s和50s,扫描循环时间为10ms。作者做了多次实验,发现定时器的定时误差为1~9ms。
如果需要高精度的延时,应使用延时中断 OB。用 SFC 32“SRT_DINT”启动延时中断,延迟时间为1~60000ms,精度为1ms。延时时间到时触发中断,调用SFC32指定的OB。CPU316 及以下的 CPU 只能使用 OB20,暖启动或冷启动将清除延时中断 OB的启动事件。
1.硬件组态
用新建项目向导生成一个名为“OB20例程”的项目(见随书光盘中的同名例程),CPU模块的型号为CPU 315-2DP。打开硬件组态工具HW Config,将硬件目录中名为“DI4xNAMUR,Ex”的4点DI模块插入4号槽,自动分配的DI模块的字节地址为0。双击该模块,打开它的属性对话框(见图4-47)。用复选框启用硬件中断,设置I0.0产生上升沿中断。在5号槽插入一块16点DO模块。
白山S7-1200PLC西门子代理商原装现货 白山西门子S7-1200PLC代理,白山西门子PLC代理,西门子S7-1200PLC代理,西门子PLC代理
2.程序设计
在10.0的上升沿触发硬件中断,CPU调用OB40,在OB40中调用SFC32“SRT_DINT”启动延时中断(见图4-51),延时时间为10s。从LD12开始的8B临时局部变量是调用OB40的日期时间值,用MOVE指令将其中的后4个字节LD16保存到MD20。
图4-51 OB40中的程序
10s后延时时间到,CPU调用SFC 32指定的OB20。在OB20中用MOVE指令保存调用OB20的日期时间值的后4个字节(见图4-52)。同时将Q4.0置位,并通过PQB4立即输出。
图4-52 OB20中的程序
可以用I0.2将Q4.0复位(见图4-53)。在OB1中调用SFC34“QRY_DINT”来查询延时中断的状态字STATUS,查询的结果用MW8保存,其低字节为MB9。OB_NR的实参是延时中断 OB的编号,RET_VAL为SFC 执行时的错误代码,为0时无错误。
图4-53 OB1中的程序
在延时过程中,可以在10.1的上升沿调用SFC33“CAN_DINT”来取消延时中断过程。
3.仿真实验
打开仿真软件PLCSIM,将程序和组态信息下载到仿真PLC。切换到RUN-P模式时,M9.4马上变为1状态,表示OB20已经下载到了CPU中。
执行PLCSIM的菜单命令“Execute”→“TriggerErrorOB”→“Hardware Interrupt (OB40-OB47)…”(见图4-49),在“Hardware Interrupt OB(40-47)”对话框中,输入DI模块的起始字节地址0和模块内的位地址0。单击“Apply”按钮,I0.0产生硬件中断,CPU调用OB40,M9.2变为1状态,表示正在执行SFC32启动的时间延时。
在SIMATIC管理器中生成变量表(见图4-54),单击工具栏上的剑按钮,启动监控功能。MD20是在OB40中读取的BCD格式的时间值(25分9秒643毫秒),*后1位为星期的代码,5表示星期4。
图4-54 变量表
10s的延时时间到时,CPU调用OB20,M9.2变为0状态,表示延时结束。OB20中的程序将Q4.0置位为1状态(见图4-52),并且用MOVE指令立即写入D0模块。可以用10.2复位Q4.0(见图4-53)。在OB20中保存在MD24的实时时间值为25分19秒643毫秒,与OB40中保存在MD20的时间值相减,可知定时精度是相当高的。
在延时过程中用仿真软件将I0.1 置位为1,M9.2变为0状态,表示0B20的延时被取消,定时时间到不会调用0B20。
基于连接的通信分为单向通信和双向通信,单向通信只需要通信的客户机编写通信程序。在通信中客户机(Client)是主动的,需要调用通信块对服务器的数据进行读、写操作。服务器(Server)是通信中的被动方,不需编写通信程序,通信功能由它的操作系统执行。
在双向通信中,通信双方都需要调用通信块,一方调用发送块来发送数据,另一方调用接收块来接收数据。在S7单向连接中,客户机调用功能块GET和PUT,读、写服务器的存储区。S7-400可以调用SFB8/SFB9和SFB12/SFB13,进行双向通信。用于数据交换的S7通信的SFB/FB见表6-10。
有S7-300集成的通信接口参与时,只能进行单向S7通信,S7-300集成的通信接口在通信中只能作服务器。S7-400集成的DP接口和CP443-5在单向S7通信中既可以作服务器,也可以作客户机。它们之间还可以进行双向S7通信。S7-300的PROFIBUS CP是否能参与S7双向通信和作S7单向通信的客户机,与CP和CPU的订货号和固件版本号均有关系,只有少数较高档的S7-300 CPU和PROFIBUS CP的组合才有双向S7通信功能。STEP7 会自动禁止建立不允许的通信连接。
用于数据交换的S7通信的SFB/FB
3. 组态硬件
在STEP7中创建一个名为“S7_DP”的项目(见随书光盘的同名例程),CPU为CPU 412-2DP。打开硬件组态工具HW Config,将电源模块和信号模块插入机架。双击机架中CPU412-2DP下面“DP”所在的行,打开DP属性对话框,新建一条PROFIBUS网络,传输速率为默认的1.5Mbit/s,配置文件为“标准”。CPU集成的DP接口和MPI接口默认的地址均为2,默认的工作模式为DP主站。单击工具栏上的黑按钮,编译并保存组态信息。
在SIMATIC管理器中生成一个S7-300站。在HW Config中,将CPU313C-2DP插入机架,在自动打开的“属性-PROFIBUS接口”对话框的“参数”选项卡中,设置站地址为3,选中“子网”列表中的“PROFIBUS(1)”,将CPU313C-2DP连接到DP网络上,默认的工作方式为DP主站。在CPU属性对话框的“常规”选项卡中,设置MPI地址为3。将电源模块和信号模块插入机架。组态好硬件后,单击工具栏上的黑按钮,编译并保存组态信息。