(续前)
' a2 Y& O) @; z1 c, b2 d
+ K; t, g1 {6 e# a; V四、硬件模块的组态和确认
, L7 a! }0 w3 L: g9 a. g. U, @ 对于各种PLC的现场硬件组态和软件调试,通常有经验的工程师应该先花一些时间对自己的现场工作进行一个简单的规划,通常应当采取如下的步骤:+ i" [% L! o! h# M
(1) 系统的规划
) l8 M3 E7 h5 A7 ^ 首先,必须深入了解系统所需求的功能,并调查可能的控制方法,同时与用户或设计院共同探讨最佳之操作程序,根据所归纳之结论来拟定系统规划,决定所采行的PLC系统架构、所需之I/O点数与I/O模块型式。+ Y* L) n1 G0 h( M
(2) I/O模块选择与地址设定
8 f7 J1 ]! i8 v' k) }+ y# _$ z 当I/O模块选妥后,依据所规划之I/O点使用情形,由PLC的CPU系统自动设定I/O地址,或由使用者自定I/O模块的地址。' B7 q. a' F$ \. l6 f
(3) 梯形图程序的编写与系统配线; f2 x4 p) S* g( i+ v8 j
在确定好实际的I/O地址之后,依据系统需求的功能,开始着手梯形图程序的编写。同时,I/O之地址已设定妥当,故系统之配线亦可着手进行。* A' \, d( _% H% F, _# \ F
(4) 梯形图程序的仿真与修改
# G7 e1 [% v: j* I1 P 在梯形图程序撰写完成后,将程序写入PLC,便可先行在PC与OpenPLC系统做在线连接,以执行在线仿真作业。倘若程序执行功能有误,则必须进行除错,并修改梯形图程序。" [/ i4 d9 F1 \6 O) i, ~, m
(5) 系统试车与实际运转
1 A! m; _2 P0 N+ K2 P 在线上程序仿真作业下,若梯形图程序执行功能正确无误,且系统配线亦完成后,便可使系统纳入实际运转,项目计划亦告完成。
e# X' u \" c( Z9 D H. B+ A (6)程序注释和归档
' B; ^4 h# e4 t+ ]( f7 B2 { 为确保日后维修的便利,要将试车无误可供实际运转的梯形图程序做批注,并加以整理归档,方能缩短日后维修与查阅程序之时间。这是职业工程师的良好习惯,无论对今后自己进行维护,或者移交用户,这都会带来极大的便利,而且是你的职业水准的一个体现。# }& c. @8 z2 M# Y1 I0 m$ i0 i
4 c1 D, M4 S; H. v. u6 I. _ 以上工作中,复杂的系统规划可能需要几天甚至更长的时间,但一个简单的系统规划在一个具有良好的职业习惯的编程工程师手中,可能只需要几个小时。& X% \1 f9 U' R$ Z, _
这里要强调一个问题,是十分简单但却几乎每个项目都会发生的,那就是对PLC的接线。这往往是经验不足的工程师常常忽略的一个问题。其实,现场调试大部分的问题和工作量都是在接线方面。有经验的工程师首先应当检查现场的接线。通常,如果现场接线是由用户或者其它的施工人员完成的,则通过看其接线图和接线的外观,就可以对接线的质量有个大致的判断。然后要对所有的接线进行一次完整而认真的检查。现场由于接线错误而导致PLC被烧坏的情况屡次发生,在进行真正的调试之前,一定要认真地检查。即便接线不是你的工作,检查接线也是你的义务和责任,而且,可以省去你后面大量的时间。) R# r" l' @5 E/ J/ h
8 e6 h+ a: M! h! Z% [& X1 o! Z' D
五、通讯的设置/ R1 ]4 e- G. ]. e
现在的PLC大多数需要与人机界面进行连接,而下面也常常有变频器需要进行通讯,而在需要多个CPU模块的系统中,可能不同的CPU所接的I/O模块的参量有需要协同处理的地方,或者,即使不需要协同控制,可能也要送到某一个中央控制室进行集中显示或保存数据。即便只有一个CPU模块,如果有远程单元的话,就牵涉到本地CPU模块与远程单元模块的通讯。此外,即使只有本地单元,CPU模块也需要通过通讯口与编程器进行通讯。因此,PLC的通讯是十分重要的。而且,由于涉及到不同厂家的产品,通讯往往是令人头痛的问题。
6 p9 c0 Q6 F# j/ q8 c, S PLC的通讯有RS232、RS485、以太网等几种方式。通讯协议有MODBUS、PROFIBUS、LONWORKS、DEVICENET等等,通常以MODBUS协议使用得最为广泛,而其它的协议则与产品的品牌有关。今后,应该是工业以太网协议会越来越普遍。. V$ V- P) p& R f5 q
PLC与编程器或手提电脑的通讯大部分采用RS232协议的串口通讯。用户在进行程序下载和诊断时都是这种方式,但是,这种通讯的方式绝不仅限于此。在大量的机械设备控制系统中,PLC都是采用这种方式与人机界面进行通讯的。人机界面通常也是采用串口,协议则以MODBUS为主,或者是专门的通讯协议。而界面方面则由HMI的厂家提供软件来进行设计。) n, y6 R B. Y4 P1 K1 v
现在的PANEL PC也有采用这种方式来进行通讯的,在PANEL PC上运行一些组态软件,通过串口来存取OpenPLC的数据,由于PANEL PC的逐渐轻型化和价格的下降,这种方式也越来越多地被使用。
4 r: b: u/ L" ^; v8 w6 p8 E 在需要对多台PLC进行联网的时候,如果PLC的数量不是很多(15个节点以内)、数据传输量不大的系统,常采用的方式是通过RS485所组成的一个简单串行通讯口连接的通讯网络。由于这种通讯方式编程简单,程序运行可靠,结构也比较合理,因此很受离散制造行业的工厂工程师的欢迎。在总的I/O点数不超过上10000个,开关量I/O点占80%以上的系统,都可以采用这种通讯方式能够稳定而可靠地运行。
$ T+ E" k' S, c! _+ {2 ~! y( L! { 如果对通讯速度要求较高的场合,可以采用点到点的以太网通讯方式。使用控制器的点到点通讯指令,通过标准的以太网口,用户可以在控制器之间或者扩展控制器的存储器之间进行数据交换。这PLC较为广泛使用的一种多CPU模块的通讯方式,与串口的RS485所构成的点对点网络相比,由于以太网的速度大大加快,加上同样具有连接简单,编程方便的优势,更方便的是,与上位机可以直接通过以太网进行通讯,因此很受用户的欢迎。甚至,在一些单台PLC和一台PANEL PC构成的人机界面的系统中,由于PANEL PC中通常有内置的以太网口,也有用户采用这种通讯方式。目前,OpenPLC对一些SCADA系统和连续流程行业的远程监控系统和控制系统,基本上采用这样的方式。6 p5 t& B( W$ N+ B5 ?! q
还有一种分布式网络在大型PLC系统中是最为广泛考虑的结构。通过使用人机界面(HMI)和DDE 服务器均可获得对象控制器的数据,同时可以通过Internet远程获得该控制器的数据。各个CPU独立运行,通过以太网结构采用C/S方式进行数据的存取。数据的采集和控制功能的实现都在OpenPLC的CPU模块中实现,而数据的保存则在上位机的服务器中完成。数据的显示和打印等则通过HMI界面和组态软件来实现。' m o {' f: Y4 [1 h5 R- d
9 G* @- G6 p% t3 m' r
六、软件调试) K/ |* K, Y. a+ s* s, c
PLC的内部固化了一套系统软件,使得你开始能够进行初始化工作和对硬件的组态。PLC的启动设置、看门狗、中断设置、通讯设置、I/O模块地址识别都是在PLC的系统软件中进行的。
$ a/ `4 i; E1 w: {+ L8 h3 d' f 每种PLC都有各自的编程软件作为应用程序的编程工具,常用的编程语言是梯形图语言,也有ST、IL和其它的语言。如何使用编程语言进行编程,这里就不细述了。
/ i3 V6 Q+ }+ D- `* H0 \9 J: Q8 }' \ 但是,用一种编程语言编出十分优化的程序,则是工程师编程水平的体现。每一种PLC的编程语言都有自己的特色,指令的设计与编排思路都不一样。如果对一种PLC的指令十分熟悉,就可以编出十分简洁、优美、流畅的程序。例如,对于同样的一款PLC的同样一个程序的设计,如果编程工程师对指令不熟悉,编程技巧也差的话,需要1000条语句;但一个编程技巧高超的工程师,可能只需要200条语句就可以实现同样的功能。程序的简洁不仅可以节约内存,出错的概率也会小很多,程序的执行速度也快很多,而且,今后对程序进行修改和升级也容易很多。$ M( N- O+ S: [# K+ U* \
所以,虽然说所有的PLC的梯形图逻辑都大同小异,一个工程师只要熟悉了一种PLC的编程,再学习第二个品牌的PLC就可以很快上手。但是,工程师在使用一个新的PLC的时候,还是应该仔细将新的PLC的编程手册认真看一遍,看看指令的特别之处,尤其是自己可能要用到的指令,并考虑如何利用这些特别的方式来优化自己的程序。
) }1 A- y0 k4 \ 各个PLC的编程语言的指令设计、界面设计都不一样,不存在孰优孰劣的问题,主要是风格不同。我们不能武断地说三菱PLC的编程语言不如西门子的STEP7,也不能说STEP7比ROCKWELL的RSLOGIX要好,所谓的好与不好,大部分是工程师形成的编程习惯与编程语言的设计风格是否适用的问题。
0 R% Q/ W6 z& S( q
, u& b1 E0 L$ G( S 现场常常需要对已经编好的程序进行修改。修改的原因可能是用户的需求变更了,可能是发现了原来编程时的错误,或者是PLC运行时发生了电源中断,有些状态数据会丢失,如非保持的定时器会复位,输入映射区会刷新,输出映射区可能会清零,但状态文件的所有组态数据和偶然的事件如计数器的累计值会被保存。# R! {# t6 x% g% x, Z4 A
工程师在这个时候可能会需要对PLC进行编程,使某些内存可以恢复到缺省的状态。在程序不需要修改的时候,可以设计应用默认途径来重新启动,或者利用首次扫描位的功能。
* |& ?4 Y- s9 h4 E- o 所有的智能I/O模块,包括模拟量I/O模块,在进入编程模式后或者电源中断后,都会丢失其组态数据,用户程序必须确认每次重新进入运行模式时,组态数据能够被重新写入智能I/O模块。
! k% T/ e, C3 u+ J 在现场修改已经运行时常被忽略的一个问题是,工程师忘记将PLC切换到编程模式,虽然这个错误不难发现,但工程师在疏忽时,往往会误以为PLC发生了故障,因此耽误了许多时间。
* B, ^- P) o3 G 另外,在PLC进行程序下载时,许多PLC是不允许进行电源中断的,因为这时,旧的程序已经部分被改写,但新的程序又没有完全写完,因此,如果电源中断,会造成PLC无法运行,这时,可能需要对PLC的底层软件进行重新装入,而许多厂家是不允许在现场进行这个操作的。大部分新的PLC已经将用户程序与PLC的系统程序分开了,可以避免这个问题。
. [+ n" V7 g4 A7 Y" ~* U0 M
$ p- h/ N2 g& t% n4 Y七、结语9 U( R3 ?% u, ~; W$ A$ C* s
现场工程师的工作是十分重要的。要想成为一个优秀的现场工程师,首先要对现场的工作有热情甚至激情,然后要有严谨和耐心的态度。现场的工作环境不像在自己的公司里那么舒适,常常是又脏又乱的,而且由于有工期和时间的限制,压力也很大。而且,要面对用户和其它专业(如电气、仪表、工艺、管线施工等)的现场人员的要求和指责,需要有协调和灵活变通的能力。另外,现场工程师与研发工程师在工作中有一个很大的不同点在于,在现场,你的最重要的任务是保证系统能够按时正常运行。如果一个方案暂时走不通,要立即考虑第二甚至第三方案,哪怕是先将就一下,也要使系统能够先正常工作起来。而研发工作是不能变通的,你要实现这个功能,必须用这个办法,其它方法虽然可以实现,但你是不能使用的。许多现场工程师由于不了解这个差别,常常在现场钻入牛角尖,一条路走到死,结果导致了现场调试工作的延误。这也是为什么一个优秀的研发工程师往往并不是一个好的现场工程师的原因。现场的工程师必须有开放的头脑和灵活的心态,当然这是建立在严谨的工作态度的基础之上的。
8 O. g0 a! K! m) F. M 此外,尽管现场工作压力十分巨大,但要注意劳逸结合。有时候,三天三夜不离开现场似乎是必要的。但对于一个编程和调试工程师来说,可能回去睡它一个好觉,工作一定会完成得更快。如果在现场的调试时间很长,则抽出一两天放松一下,也是十分必要的。有时候,游山玩水也是工作。
+ w& {" H! e. r. K$ H9 j 另外,一个优秀的现场工程师,主要依靠的是工作经验的积累,与个人的天分关系不大,只要勤恳,并做过足够多的项目,那么绝大多数人都是可以成为一个优秀的现场工程师的。所需要的时间?可能是三年五年,也可能是半年一年。: p X3 s t; D4 W) }8 W
- ?/ f( O( Z+ M
(全文完)6 D: T) T0 v6 z
|