1
根据工程实际需求,进行功能块规划,编写子程序
在PLC中子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,电气柜价格查询,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少不必要的扫描时间。
2
用字或双字数据传送给DO点方法来控制输出
在PLC的应用中通常都会有大量的输出控制,用字或双字数据传送给DO点方法来控制输出可以提高速度,只要根据实际应用的要求,合理分配输出地址,变换控制输出控制字,可以大大减少PLC程序执行的步数,从而加快PLC的程序运行速度。
3
脉冲触发SET、RESET
PLC中,使用SET指令只执行一次即可,不必每次扫描都执行这个指令,很适合与脉冲输出(PLS/PLF)指令配合使用。有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间。
4
避免类型转换,方法如下:
以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。
如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字型访问,避免了类型转换。
为了避免使用时混淆,以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:
b————字节型变量(byte)
w————字型变量(word)
d————双字变量(double)
r————实型变量(real)
f————位变量(flag)
btn——-自复位按钮式输入(btn)
sw————切换开关或自锁按钮输入(switch)
sig——-传感器、编码等电平信号输入(signal)
rly——-输出继电器位(relay)
……
当然,这个根据个人习惯来,没有定则,主要是利于自己区分。
假如有一个字类型变量名为VarName,为使用前面的转换技巧,我们可以这样定义:
wVarName————VW2
dVarName————VD0
在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。
个人建议,找些例子看着,一边看教程,一边理解,尝试在理解的过程中,想想能否替换一些模块,不求最简洁,但求逻辑走的通。
话说到现在为止,我都是先列方案,分块,然后根据方案看书或者F1里面找符合的功能模块。我也没背过。
比如例子中使用TON 你可以试一下用TOFF加下降沿触点实现同样功能,例子都能看懂读透了。自己假设一个控制方案,做通了,河南电气柜,基本已经算入门了。
至于你说的书,我只能大概某宝一下看简介,大概看了也有2本比较符合。
应该没有店家名字广告嫌疑吧。
另外么,控制逻辑这个东西,一通百通。
例某工厂使用放空阀做压力保护使用。
总结控制方案为,当xx通道数值大于yy 值,电气柜解决方案,zz数字量通道接通。
然后就可以写程序了。
先弄明白数字量,模拟量自然通了。
LC的控制从来都是针对受控整体的,因此涉及到PLC的工作一定由团队来完成。
以我设计的PLC测控系统为例。
我们看下图:
这张图看似简单:各台变压器平时各自对各自的母线供电,闭合本段的主进线开关即可,当某变压器失压后,就闭合母联开关,从相邻系统获取电能。当然要配套抛三级负荷的操作。这叫做备自投操作。
问题是:当电压恢复后,是不是再把母联开关打开,让系统再次失压,然后再闭合本段进线?
对于工厂,特别是化工厂是不允许的,因此需要让两台变压器并列供电,然后再切断母联。这叫做倒闸操纵。
如果是有发电机供电,则需要让发电机与市电并列。这时就需要配套同期操作。
上述这些操作均可通过继电器逻辑来实现。但如果系统特别重要,控制特别复杂,则需要用PLC来执行逻辑控制。例如石化厂、机场、地铁、计算机中心等等。
这里涉及到的供电电流可达6300A。其中还有大量的电动机MCC测控及馈电PCC测控,要配套通信管理机,当然也要编程。
这么大的系统,显见单靠一个人是无法完成的,必须依靠团队。
我作为主设,需要设计全系统的方案,绘制全系统的系统图、开关柜结构图,确定所有元器件提交采购,绘制一次回路和二次回路接线图给车间生产,绘制出厂图供售后服务和用户,其中包括PLC和各种测控装置、通信管理机的外围接线图。
接着编写PLC的控制逻辑和通信管理机程序。当售后服务在用户处安装完开关柜后,我出差到现场输入程序,并参与总调。
***的文件归档当然也要自己做。
由此可见,电气柜功率,PLC不过是其中的极xiao部分而已。
这种工程很锻炼人。一个工程下来,会学到大量的工程经验,收获的比付出的要多得多。
国内实践中,很多中小型项目都是个人完成,或者说至少以个人为主完成的,其他队友主要起辅助作用。但是从软件工程的角度,这样的分工主要是由于缺乏整体的系统架构设计,缺乏统一规划,没有办法模块化完成工作,这样其实也不利于企业规范的建立,因此,如果有可能,还是要团队协作来进行设计。
从题主的问题看,选型、程序,文档这些在大部分国内的做工程的公司里都是独立完成的。千wan级及以下的工程很少有团队合作来完成这些工作。程序和系统设计在工程项目中技术含量其实并不高,总体的预算也很少。我在多个公司里兼职做系统设计,编程,调试。很多大型的公司一个会写程序的人都没有,多数是在2-3个,每个人同时在做多个项目,忙不过来的时候我的生意就来了。
工作中接触过很多国外的知名公司, 比如有一位知乎大拿在的Abb,他们不管项目大小,总是好几个人同时在现场,最duo的一次是5个写程序的人。不过那个项目是亿元级别的,一个热轧线的改造。如果我能代表国内的公司的话,那国内工程师的目标是满足客户的需求,某些传统跨国大企业的目标是达到自己的标准,这个标准里很多东西是客户根本就不了解更不懂的潜在因素。
曾经与一个德国专家在同一个项目里共事,我们分属两个公司,有一部分数据通过一条网线传输,网线由他们供货,但是拿到现场的线短了,甲方说可以免费提供一个,但被拒绝了,原因是不符合他们自己的要求,***是从他们的中国公司邮寄了一根。
项目大小决定个人还是团队。
一般来说,几十个测点的项目应该个人能完成,用时应该一个月内,上百点甚至上千点的项目肯定是一个团队,用时可能几个月到一两年,团队分工大致有项目经理、负责硬件接线和调试的工程师、负责控制方案设计的工程师,负责系统组态和调试的工程师等等
这个问题提得很搞笑。
做一家3口的饭一个人就够了。做全公司一两千人的中午饭再怎么也要几十号人。