PLC编程大项目很难?掌握了这一点就很简单
PLC结构化编程 是对应于典型的控制要求,将过程要求中的类似或相关的任务归类,在功能或功能块中编写通用的程序块,这些程序块可以反复被调用,以控制不同的目标,形成通用的解决方案。这些的通用的程序块就称为结构,利用各种结构组成程序就称为结构化编程。可以通过不同的参数调用相同的功能或通过不同的背景数据块调用相同的功能块。结构化编程过程中通用的数据和代码可以共享,其特点是,编写通用程序块,对不同的控制任务代入不同的地址和数据,使更多的控制任务可以使用此通用程序块,因此具有很高的编程和编程调试效率,并且编程结构清晰,适合于复杂的控制任务。
在块调用时,调用者可以是各种逻辑块,包括用户编写的组织块(OB)、FB、FC和系统提供的SFB和SFC,被调用的块是除OB1外的所有逻辑块。调用功能块时需要为其指定一个背景数据块,背景数据块在功能块调用的同时被打开,在调用结束时被关闭。
在给功能块编程时使用的是形参,调用它时需要使用实参来为形参赋值。在一个项目中,可以多次调用同一个块,如在调用控制电动机的块时,将不同的实参赋值给形参,就可以实现对类似但不完全相同的被控对象(如直流电动机和交流电动机)的控制。
块及子程序的调用,可以嵌套调用,即被调用的块同时还可以调用其他的块。嵌套调用的嵌套深度与CPU的型号相关。
嵌套调用的深度同时还与局部数据堆栈(L堆栈)有关。每个OB需要至少20 B的L内存。当块A调用块B时,块A的临时变量将被压入L堆栈进行现场保护。
程序被分为不同的逻辑块,每个块包含了完成部分控制任务所需的逻辑指令。 组织块OB1(主程序)中的指令决定在什么情况下调用哪一个块,功能和功能块(子程序)用来完成不同的过程任务。被调用的块执行完后,返回到OB的调用点,继续执行OB1。模块化编程,将一个较大的程序分成若干块,易于实现多人同时对一个项目编程。由于只在需要时执行相关的指令,因此提高了CPU的执行效率。
线性化编程是将整个系统的控制程序放在主循环控制组织块OB1(主程序)中,每一次循环扫描都要不断地顺序执行OB1中的全部指令。 这种方法的程序结构简单,不涉及功能、功能块、数据块、局部变量和中断等比较复杂的概念。
由于所有的指令都集中在一个块中,即使程序中的某些部分在大多数时候都不需要执行,但每个扫描周期都需要执行所有指令,CPU的执行效率比较低。此外如果需要多次执行相同或相似的程序就需要重复编写程序。因此,这种编程方法,一般只在编写简单的控制系统程序时使用。
模块化程序的执行
模块化编程中OB1起着主程序的作用,FC或FB控制着不同的过程任务,相当于主循环程序的子程序。模块化编程中被调用块不向调用块返回数据。
模块化编程实例
1.模块化编程实例1 - 液位监视
• 监视一个慢变得过程不需要每次扫描都进行。如果过程每隔一定时间或根据需要进行处理,程序将更有效。• 在OB1循环扫描处理时,可以按照一定的周期对液位进行监视。
设计方法:
• 确定液位监视的组成部分和它们的关系;
• 设计完成所要求控制任务的功能;
• 规划从OB中调用块完成功能的程序执行
过程;
• 对程序块的每个段加上文字注释和标题。
解决方案:
• 建立一个功能FC,可以监视和控制任务;
• 建立一个OB,其中每隔一定时间调用块
(功能)。
2.模块化编程实例2
有两台电动机,控制模式是相同的,按下启动按钮(电动机1为I0.0,电动机2为I1.0),电动机起动运行(电动机1为Q4.0,电动机2为Q4.1);按下停止按钮(电动机1为I0.1,电动机2为I1.1),电动机停止运行。
分析:
这是典型的起保停电路,采用模块化编程的思想,分别在FC1和FC2中编写电机的控制程序,在主程序OB1中进行FC1和FC2的调用。
结构化编程
Ø 将复杂的任务分解成一些能够反映过程的工艺、功能或可以反复使用的单独解决的小任务,这些任务由相应的程序块来表示;
Ø 某些程序块可以用来实现相同或相似的功能;
Ø 调用者可以是各种逻辑块,包括用户编写的OB、FB、FC和系统提供的SFB与SFC;
Ø 被调用的块是OB之外的逻辑块;
Ø 通用的数据和代码可以共享。
结构化编程
结构化编程的优点:
1各单个任务块的创建和测试可以相互独立地进行;
2通过使用参数,可将块设计得十分灵活;
3块可以根据需要在不同的地方以不同的参数数据记录进行调用;
4在预先设计的库中,能够提供用于特殊任务的“可重用”块。
结构化编程实例-油漆调制
1选择产品添加剂,需要决定哪个罐的成分要加到混合罐内。
2在选择开关的选择基础上,组织块调用相应的程序块,分配当前的参数,控制混合罐的流入量。
设计方法:
1. 确定哪些部件和操作可以应用于所有的罐和相关的控制;
2. 建立功能或功能块,完成所要求的控制;
3. 建立块的变量定义表,以便于对要操作的罐和控制进行地址分配;
4. 设计一个程序来根据选择开关调用功能或功能块。
解决方案:
1. 建立一个功能块或功能控制罐的流出量;
2. 为相关的块建立变量定义表;
3. 建立一个OB块来根据选择开关调用功能或功能块。
PLC程序加了定时,能拿到尾款吗?
导读
关于PLC的加解密大家可以参考这篇汇总《PLC加解密和定时催款》,不过今天主要谈谈同行们对此事的看法!
一、前言
自控项目收尾款难已经是常态了,PLC程序加密似乎成了最后的救命稻草,但是密码到期后,对设备或产线有不同程度的影响,作为甲乙双方对于这个问题的态度截然不同,甲方一旦生产受限或人材机受损肯定要向乙方追责的,乙方原本是通过加密停机追收尾款,可一旦造成索赔也是非常麻烦,搞不好还要吃官司。下面就来看看大家对此的看法!
二、讨论
【网友A】只要合同没有特别声明,都要给PLC项目加密,毕竟是自己的产权,就算合同上规定了提供源程序,发一份电子程序文件或者打印源程序文件提供都是可以的。只要客户动到程序就要经过密码验证,需要联系原工程师确认,这是一个最基本的确认动作。那种尾款赖账的客户,一般都是采用定时锁机的手段,到时间就锁机,提示需要支付尾款了。但是绝对不能到期就锁机,可以采用先在人机界面提醒客户的方式,比如采用30天的倒计时反复提醒,30天后就锁住一些功能,比如某些显示功能、自动功能或智能功能,尽可能避免造成人员伤亡或重大事故的锁机动作。
【网友B】我是化工厂的自控工程师,我们的DCS系统有各种权限的密码,但是好像没有锁机密码,因为据我了解该主体项目尾款也没有结清,每年末都有设计公司来讨债,但是系统没被锁机,设计公司还是会提供技术服务。但是车间的有些小项目反倒会因欠款而停机,不给钱人家就是不来解锁,起诉也不怕,后面顶不住生产部和技术部的压力,财务还是把钱给付了。
【网友C】我们公司大部分业务是水处理项目,业主都是政府部门,加密是没有用的,搞好关系才最重要,关系到位了,项目好验收,钱也好拿!况且在行业也是有口碑的,圈子就那么大,一个项目把自己搞臭了不值当。
【网友D】只要过我手的项目,想要通过加密停机来收尾款那是不可能的!我宁愿花这钱去找人解密,从此以后再也不会找你做项目。但是,只要严格按照合同验收的项目,竣工资料完整交接和人员培训合格,付款单我可以第一个签字。
【网友E】提起这茬我就窝火,帮一老板做私活,事前谈好价格的,只编程调试,验收后给了一半,剩下的到现在都没给,早知道就加密了,只怪那时候太嫩了,现在不管啥项目,都要加密定时,钱收完了就全部放开,省的以后去现场麻烦。
【网友F】没必要啊,PLC程序加密会给维修增加很多的麻烦,而且万一忘了那就更郁闷了。再说现在技术都比较开放了,有心学东西的人总会有渠道去学习的。打铁还需自身硬,与其怕被别人超越,不如自己再向前跨一步。
【网友G】从不对设备的软件和参数加密,巴不得客户技术人员全部搞懂,省得打电话麻烦我。就像在一个煎饼摊位看到的广告:曾经被模仿,但从未被超越,摊煎饼都有如此自信,干工控更应有这样的心胸。
【网友H】最好不要设置突然停机的加密,一旦你PLC停机造成重大损失或人员伤亡,吃不完兜着走。争取在行业做出口碑,多点优质客服才是上策。
【网友I】加密停机也可以学学老外的做法,第一个时间段后某自动功能失效,第二个时间段后全部自动功能失效,第三个时间段后彻底瘫痪,每次都有相应的缺失功能警告,理亏的客户看到越来越严重的警告提示还是会付款的。
三、最后
总之,PLC程序加密锁机是一把双刃剑,其实谁也不愿意看到这种情况出现,最后希望大家也来谈谈自己的看法吧!
相关问答
新手学PLC编程要多久?
新手学PLC编程需要的时间因个人学习能力、PLC类型、编程环境和项目复杂度而有所不同。一般来说,学习基本指令和功能可能需要数周或数月的时间,而掌握更高级的...
电气自动化毕业,一般多久能够达到独立编程,成为电气工程师?
这个看个人能力了,而且还看有没有一个好的师傅带你,我当时毕业后,干了三个多月操作工,然后又干了三个多月电气装配工,后来才开始接触调试,但是说实话带我的...
plc程序几天能画出来?
编写PLC程序的时间取决于多个因素,例如程序规模、复杂度、控制要求、编程经验等。对于简单的PLC程序,可能只需要几个小时或一天就可以完成。而对于复杂的PLC程...
PLC编程怎么报价?
学习plc编程要花费2000-15000元。如果参加PLC线上培训,费用基本在2000元左右,主要是利用空闲时间参加学习,但是学习周期相对较长。而线下的培训基本在4000元至...
plc编程如何收费?
PLC编程的收费方式通常根据工程的复杂程度和工作量进行计费。一般来说,PLC编程工作包括需求分析、程序编写、调试和部署等环节,每个环节所需的时间和专业技能...
数控编程多久才能学会?
和学习数学一样,理论例题的掌握针对性的学习其实几个月也能学会。重要的是应用,例如下雨计算如何淋最少的雨一样。PLC应用到某个场合,如何编程,如何高效实...
芝麻工控的肖老师,会做PLC编程项目吗?
开啊,芝麻工控线下实操每月都开班,还推荐工作,电气工程师方面的,他们不仅现场做PLC培训,还在接编程项目,学员还可以去项目现场学习呢,肖老师确实有两把刷...
变频器plc编程怎么样?多长时间能学会?
变频器现在应用已经非常普遍了,小到风机调速,恒压供水,复杂到恒张力控制,起重提升。变频器的主要功能就是通过调节输出供电频率(Hz)达到调节负载电机的转速功...
本人从事PLC编程10年,想办培训班但没有经验,请教各位给指点一二可以吗?
在上海的一些QQ群里边,长期都有人在找有5年工作经验的技术人员,很多都是让去培训机构兼职周末的讲师,因为上海的自动化公司多,自动化项目多,从事和想从事自...最...
三菱PLC编程外包流程?
三菱PLC编程外包的流程通常如下:需求评估:首先,客户与外包服务提供商进行沟通,明确项目的具体需求和目标。这包括PLC系统的功能要求、输入/输出设备的连...