西门子S120连接电缆6SL3060-4AF00-0AA0
PLC程序的调试可以分为模拟调试和现场调试两个调试过程,在此之前首先对PLC外部接线作仔细检查,这一个环节很重要。外部接线一定要准确无误。也可以用事先编写好的试验程序对外部接线做扫描通电检查来查找接线故障。
为了安全考虑,**将主电路断开。当确认接线无误后再连接主电路,将模拟调试好的程序送入用户存储器进行调试,直到各部分的功能都正常,并能协调一致地完成整体的控制功能为止。据电工论坛李工介绍,程序的具体调试要按照以下的方法进行。
1.程序的模拟调试
将设计好的程序写入PLC后,首先逐条仔细检查,并改正写入时出现的错误。用户程序一般先在实验室模拟调试,实际的输入信号可以用钮子开关和按钮来模拟,各输出量的通/断状态用PLC上有关的发光二极管来显示,一般不用接PLC实际的负载(如接触器、电磁阀等)。可以根据功能表图,在适当的时候用开关或按钮来模拟实际的反馈信号,如限位开关触点的接通和断开。
对于顺序控制程序,调试程序的主要任务是检查程序的运行是否符合功能表图的规定,即在某一转换条件实现时,是否发生步的活动状态的正确变化,即该转换所有的前级步是否变为不活动步,所有的后续步是否变为活动步,以及各步被驱动的负载是否发生相应的变化。
在调试时应充分考虑各种可能的情况,对系统各种不同的工作方式、有选择序列的功能表图中的每一条支路、各种可能的进展路线,都应逐一检查,不能遗漏。发现问题后应及时修改梯形图和PLC中的程序,直到在各种可能的情况下输入量与输出量之间的关系完全符合要求。
如果程序中某些定时器或计数器的设定值过大,为了缩短调试时间,可以在调试时将它们减小,模拟调试结束后再写入它们的实际设定值。在设计和模拟调试程序的同时,可以设计、制作控制台或控制柜,PLC之外的其他硬件的安装、接线工作也可以同时进行。
2.程序的现场调试
程序的现场调试完成上述的工作后,将PLC安装在控制现场进行联机总调试,在调试过程中将暴露出系统中可能存在的传感器、执行器和硬接线等方面的问题,以及PLC的外部接线图和梯形图程序设计中的问题,应对出现的问题及时加以解决。如果调试达不到指标要求,则对相应硬件和软件部分作适当调整,通常只需要修改程序就可能达到调整的目的。全部调试通过后,经过一段时间的考验,系统就可以投入实际的运行了。
实际的PLC应用系统往往比较复杂,复杂系统不仅需要的PLC输入/输出点数多,而且为了满足生产的需要,很多工业设备都需要设置多种不同的工作方式,常见的有手动和自动(连续、单周期、单步)等工作方式。
在设计这类具有多种工作方式的系统的程序时,经常采用以下的程序设计思路与步骤:
1.确定程序的总体结构
将系统的程序按工作方式和功能分成若干部份,如:公共程序、手动程序、自动程序等部份。手动程序和自动程序是不同时执行的,所以用跳转指令将它们分开,用工作方式的选择信号作为跳转的条件。如图5-54所示为一个典型的具有多种工作方式的系统的程序的总体结构。选择手动工作方式时X10为“1”状态,将跳过自动程序,执行公用程序和手动程序;选择自动工作方式时X10为“0”状态,将跳过手动程序,执行公用程序和自动程序。确定了系统程序的结构形式,然后分别对每一部份程序进行设计。
2.分别设计局部程序
公共程序和手动程序相对较为简单,一般采用经验设计法进行设计;自动程序相对比较复杂,对于顺序控制系统一般采用顺序控制设计法,先画出其自动工作过程的功能表图,再选择某种编程方式来设计梯形图程序。
3.程序的综合与调试
进一步理顺各部分程序之间的相互关系,并进行程序的调试
1功能介绍
s7-1500产品系列的cpu支持在运行期间扩展函数块的接口,或者增加全局数据块的变量。此过程无需将cpu设置为stop模式,既可下载已修改的块,此时也不会影响已经加载变量的过程值。这是一种简单的程序更改实施方式,这一加载过程(无需重新初始化的加载)不会对受控对象造成**影响。
原理:被激活为“优化块访问”(optimized block access)属性的函数块或者数据块已经默认包含一个预留存储区间,该预留区间在初期并未使用,可用于后续的函数块接口的扩展或者数据块变量的增加。预留功能会占用更多的存储区。如果希望已经带有存储区预留的程序块用于下载无需重新初始化功能,那么新声明的所有变量都将保存到存储器预留的区域中,所以所有新增变量的大小必须小于预留的存储区的大小。执行无需重新初始化的下载不会影响任何已经加载的变量或对运行造成不利影响。
2功能实现
2.1要求
要实现下载函数块或者数据块无需重新初始化功能,需要满足以下条件:
1) 项目是博途v12版本创建的
2) 使用s7-1500产品系列的cpu
3) 函数块在lad、fbd、stl、或scl中创建
4) 块由用户创建,即这些块不能是博途 v12安装后自身带有的块
5)这些块设置为优化访问方式
2.2应用举例
下面以db为例,来说明怎样实现下载无需重新初始化功能。
序号 | 操作 | 图示 |
1. | 首先打开博途 v12 软件,切换至项目视图,添加一款s7-1500cpu。 | |
2. | 添加一个新的数据块,数据块名称和编号使用缺省值即可。 | |
3. | 默认情况下,数据块已经被设置为优化的块访问方式,如果不是,手动设置为优化的块访问方式。 | |
4. | 默认预留存储空间大小为100字节,可以修改这一存储预留区域以适应用户的需求,*大可以设置为2m。这部分预留存储空间由装载存储器提供。 保持存储区中默认情况下没有设置预留区域,这是因为保持型存储区由cpu提供,这一存储区是有限的(例如cpu1516为484000个字节)。如果增加的变量需要设置为保持属性,那么就需要设置预留可保持性存储器的大小。 | |
5. | 接下来在在数据块中建立变量,本例中建立以下三个变量“variable1”、“variable2”和“variable3”,数据类型分别为bool,real和int。 | |
6. | 在ob1中对这些变量赋值,此赋值过程为使用上升沿与跳转指令赋值,只持续一个周期 | |
7. | 在线监视赋值结果。 | |
8. | 点击下载无需初始化功能图标,弹出提示对话框,点击确定。 | |
9. | 注意:一旦激活了下载无需初始化按钮,则无法再**现有变量。 除了“默认值”、“起始值”和“注释”属性之外,其它属性均不得再进行更改。同时,也不能再次修改步骤4中保留存储器的大小。 | |
10. | 可以在现有变量标签上选择“插入行”或者“添加行”来增加变量,本例增加了两个变量,分别是“variable4”和“variable5”,并且修改了“variable3”的启动值。 | |
11. | 在编译期间,新声明的变量将插入到预留存储器中。 如果预留存储器过小,编译将终止,并显示一条错误消息,通知发生错误。 点击下载,将数据块下载到cpu中,下载预览中的“消息”栏中,没有出现下载需要初始化选项,说明成功实现下载程数据块无需重新初始化功能。 | |
12. | 查看增加新变量后的块属性,可以观测到保留存储区的剩余资源。 | |
13. | 下载后监视数据块,原有变量的过程值保留原来的值,并没有被重新初始化为启动值,新增加的变量被初始化为启动值。 |
3其它注意事项
3.1修改缺省预留存储区大小
如果要在项目中为所有新创建的块设置预留存储器的大小,请按以下步骤操作:
1) 在“选项”(options) 菜单中,选择“设置”(settings) 命令。选择后将在工作区中显示“设置”(settings) 窗口。
2) 在区域导航中选择“编程 >; 常规”(plc programming >; general) 组。
3) 在“无需重新初始化设置下载的预留存储器”(reserved memory for download without reinitialization) 组中,在“存储器预留区域”(memory reserve) 的输入框中输入为函数块或者数据块进行后续扩展而分配的预留存储区的字节数。
设置完成后,当新建一个优化的函数块或者数据块时,步骤4中缺省的预留存储空间变为新指定的大小。而已经存在的块不受此次更改的影响。
设置界面如图3-1所示。
图3-1修改系统缺省预留存储区大小
3.2取消下载无需初始化功能
如果取消下载无需初始化功能,可以将之前位于预留区域的所有变量都移动到常规区域。 因此,需要对块进行编译并再次加载。 cpu 中变量的值在加载期间重新初始化。预留存储器仍然存在,可供之后进行扩展时使用, 并再次具有块属性中所定义的空间大小。
3.3重至预留存储区
要重置一个或多个块的预留存储器,请按以下步骤操作:
1) 选择“程序块”(program blocks) 文件夹,或该文件夹中的特定块。
2) 在快捷菜单中,选择“编译 >; 软件(重置预留存储器)”(compile >; software (reset memory reserve))命令。
此操作的结果是,之前位于预留存储器中所选块的所有变量,都从此区域移动到常规区域中,并且块重新被编译。变量在下一次加载期间将重新初始化。块中所组态的预留存储器将保留,且继续保持活动状态。
注意:取消下载无需初始化功能和重置预留存储器时,在预留存储器中之前设置的所有变量都将在下次加载时重新初始化。这适用于保持性和非保持性变量。在工厂运行期间,更改变量值将导致严重的财产损失和人身伤害! 因此,在重置预留存储器后必须先在测试环境中进行全面彻底地检查之后,才能使用。