6ES7321-1BP00-0AA0技术参数
CPU
全新的S7-200SMART带来两种不同类型的CPU 模块,标准型和经济型,满足不同行业、不同客户,不同设备的各种需求。标准型作为可扩展CPU模块,可满足对I/O规模有较大需求,逻辑控制较为复杂的应用;而经济性CPU模块直接通过单机本体满足相对简单的控制需求。
西门子S7-200 SMART EM AI04 模拟量输入模块西门子S7-200 SMART EM AI04 模拟量输入模块西门子S7-200 SMART EM AI04 模拟量输入模块
图2 S7-300 CP341 RS422/485 通讯口引脚定义
3.2.2 接线示意图
图3 硬件结构和接线示意图
4. 组态设置和编程
4.1 S7-200做Modbus主站的设置
S7-200CPU上的通信口在电气上是标准的RS-485半双工串行通信口,此串行字符通信的格式:1个起始位;7/8位数据位;1位奇/偶/无校验;1停止位。通信波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500,符合这些格式的串行通讯设备可以和S7-200进行自由口通讯,ModbusRTU指令库就是使用自由口编程实现的。
使用Modbus 主站指令库时需要注意的几点:
需要S7-200的编程软件是 Micro/WIN V4.0 SP5及以上版本;
Modbus RTU 主站库对CPU的版本有要求,CPU 的版本必须为 2.00 或者 2.01(即订货号为6ES721*-***23-0BA*);
Modbus主站可读/写的zui大数据量为120个字(指每一个 MBUS_MSG 指令);
Modbus 主站库支持Port0和Port1(从站库只支持Port0口),本例中用Port0;
使用Modbus 库时必须对库存储区进行分配,见下图设置,分配的空间不能和程序中其它空间冲突,否则编译调用会报错。
图4 库存储区设置
Modbus主站库支持的功能码和地址对应关系:
Modbus 地址 | 读 /写 | Modbus 从站须支持的功能 |
00001~09999 | 读 | 功能1:读输出点 |
数字量输出 | 写 | 功能5:写单个输出点 |
| 功能15:写多个输出点 |
10001~19999 | 读 | 功能2:读输入点 |
数字量输入 |
30001~39999 | 读 | 功能4:读输入寄存器 |
输入寄存器 |
40001~49999 | 读 | 功能3:读保持寄存器 |
保持寄存器 | 写 | 功能6:写单个寄存器 |
| 功能16:写多个寄存器 |
表2需要从站支持的功能
4.1.2 S7-200 Modbus主站编程
编程时,使用SM0.0调用MBUS_CTRL完成主站的参数初始化,详细见下表,参数的说明也可以从子程序的局部变量表中找到。
SIMATIC S7-200 SMART 产品亮点:西门子S120电机驱动模块6SL3120-1TE23-0AD0机型丰富,更多选择
提供不同类型、I/O 点数丰富的CPU 模块,单体I/O 点数zui高可达60 点,可满足大部分小型自动化设备的控制需求。CPU模块配备标准型和经济型供用户选择,对于不同的应用需求,产品配置更加灵活,zui大限度的控制成本。
选件扩展,定制
新颖的信号板设计可扩展通信端口、数字量通道、模拟量通道。在不额外占用电控柜空间的前提下,信号板扩展能更加贴合用户的实际配置,提升产品的利用率,降低用户的扩展成本。
高速芯片,性能
配备西门子高速处理器芯片,基本指令执行时间可达0.15 μs,在同级别小型PLC中遥遥。一颗强有力的“芯",能让您在应对繁琐的程序逻辑,复杂的工艺要求时表现的从容不迫。
以太互联,经济便捷
CPU 模块本体标配以太网接口,集成了强大的以太网通信功能。一根普通的网线即可将程序下载到PLC中,方便快捷,省去了编程电缆。通过以太网接口还可与其它CPU 模块、触摸屏、计算机进行通信,轻松组网。
三轴脉冲,运动自如
CPU 模块本体zui多集成3 路高速脉冲输出,频率高达100kHz,支持PWM/PTO输出方式以及多种运动模式,可自由设置运动包络。配以方便易用的向导设置功能,快速实现设备调速、定位等功能。
通用SD 卡,方便下载
本机集成Micro SD 卡插槽,使用市面上通用的Micro SD 卡即可实现程序的更新和PLC固件升级,*地方便了客户工程师对zui终用户的服务支持,也省去了因PLC 固件升级返厂服务的不便。
软件友好,编程
在继承西门子编程软件强大功能的基础上,融入了更多的人性化设计,如新颖的带状式菜单、全移动式界面窗口、方便的程序注释功能、强大的密码保护等。在体验强大功能的大幅提高开发效率,缩短产品上市时间。
整合,无缝集成
SIMATIC S7-200 SMART 可编程控制器,SIMATIC SMART LINE 触摸屏和SINAMICSV20变频器整合,为OEM 客户带来高性价比的小型自动化解决方案,满足客户对于人机交互、控制、驱动等功能的需求。
S7-200 SMART 带来两种不同类型的CPU 模块:
标准型
继电器输出型(SR20 / SR40 / SR60)
晶体管输出型(ST40 / ST60)
经济型
继电器输出型(CR40)
标准型作为可扩展CPU 模块,可满足对I/O 规模有较大需求,逻辑控制较为复杂的应用;而经济型CPU模块直接通过单机本体满足相对简单的控制需求。具有:
以太网接口
RS485 串口
支持 Micro SD 卡
高速计数
I/O 模块扩展 1)
信号板扩展 1)
实时时钟 1)
高速脉冲输出 2)
仅有标准型 CPU 模块支持 2) 只有标准型、晶体管输出型才支
PS207 PLC 电源 24 V DC/2.5 A 6EP1 332-1LA00
PS207 PLC 电源 24 V DC/4 A 6EP1 332-1LA10
CSM1277 以太网交换机,4 端口6GK7 277-1AA00-0AA0
HMI 操作面板 订货号
Smart 700 IE Smart 700 IE,7 寸触摸屏6AV6 648-0BC11-3AX0
Smart 1000 IE Smart 1000 IE,10.2 寸触摸屏6AV6 648-0BE11-3AX0
TD400C 蓝色背光 LCD,4 行文本显示器, 6AV6640-0AA00-0AX0
工业以太网 FC RJ45 接头能够快速、方便地与 4 芯工业以太网 FC 连接电缆(2 x 2)进行现场安装使用工业以太网 FC剥线工具,可以一次性剥去电缆外皮和屏蔽层,并方便、快速、毫无问题地与插塞接头进行接触。由于插塞接头没有任何小的易丢部件,在苛刻的工况条件下也能安装使用新型插塞接头,可实现工业以太网的端到端链路(100Mbit/s),两个数据终端/网络部件之间的距离可达 100 m,而无需插接线。
电缆跨越的距离取决于与设备有关的波长在各自的应用中,必须考虑zui大电缆长度。不允许不同类型的光纤进行被动连接。在将来网络装置中*使用50 μm 光纤,因为千兆以太网的范围更广。62.5 μm 光纤仅在现有网络装置中*使用。若要跨越很长的距离,建议使用具有 9 μm光纤的单模光缆。
西门子(SIEMENS)公司的PLC产品包括LOGO、S7-200、S7-1200、S7-300、S7-400等。西门子S7系列PLC体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性高。S7系列PLC产品可分为微型PLC(如S7-200),小规模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。
西门子PLC系列介绍:
S7-200 CN PLC 实用于各行各业,各种场所中的检测、监测及掌握的主动化。S7-200 CN系列的壮大功用使其无论在独立运行中,或相连成网络皆能完成庞杂掌握功用。S7-200CN 系列具备*的性能价钱比。
CPU 模块具备 20I/O、30I/O、40I/O、 60I/O 四种配置,提供标准型和经济型
? 集成高速处理器芯片,位指令执行时间可达 0.15μs
? 通过信号板可扩展通信端口、模拟量通道、数字量通道和时钟保持功能
? CPU 模块本体集成以太网接口和 RS485 串口,支持以太网接口下载程序
? 支持 Modbus RTU、USS、PROFIBUS-DP、自由口通信等
? 本体zui多集成 3 路 100KHz 高速脉冲输出
? 支持通用 Micro SD 卡下载程序、更新 PLC 固件和恢复出厂设置
? 新版编程软件,融入多项人性化设计,项目开发更加
? PM207为整个系统提供高品质的直流供电
? 宽屏7寸,10寸两种尺寸,支持水平和垂直安装
? 800x400(7寸),1024x600(10寸)高分辨率,64K色,LED背光
? 集成以太网口可与S7-200系列PLC以及Logo!进行通讯(zui多可连接4台)
? 隔离串口(RS422/485自适应切换),可连接西门子、三菱、施耐德、欧姆龙以及
台达部分系列PLC
? 支持Modbus RTU协议
? 支持硬件实时时钟功能
? 集成USB2.0 host接口,可连接鼠标、键盘、Hub以及USB存储器
? 支持数据和报警记录归档功能
? 强大配方管理,趋势显示,报警功能
? 通过Pack&Go功能,轻松实现项目更新与维护
1、引言 可编程序控制器(简称plc)是一种工业自动控制中使用的计算装置。它广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、航天、环保及文化娱乐等各个行业。小到家用设备,大到航天器材,都有plc的应用。 典型的plc由一个专用的cpu,一个存储器和一组输入输出端口构成,如图1所示。它通过输入端口接收来自传感器的信号,并通过输出端口发出控制信号驱动同它连接的外部设备。存储器中安放控制程序,系统的活动由控制程序所驱动。 plc系统每隔一定的时间间隔(比如5毫秒)从输入端口读入信号,执行计算,向输出端口发送输出信号。每一“输入-计算-输出”周期称为一个扫描周期。plc程序在每个扫描周期中重复执行一遍。plc的简单应用有洗衣机控制,电梯控制。复杂的应用有自动机床控制,自动化工程控制。 plc程序设计具有不寻常的软件编程模式。设计中需要考虑多个并行线程,它们之间的交互作用,以及在时间域上的行为。在plc的五种主要的编程语言当中,源自继电器控制系统的梯形图语言采用了一种简单的方式巧妙地处理了并行程序设计问题,由于plc编程问题的固有复杂性,以及测试手段的缺乏,许多plc程序中依然存在大量的错误。 为了解决这一问题,灵芯实验室正在开发plc测试系统,为plc程序的调试提供解决方案。在这一系统的试用过程中,在两本plc入门教科书的6个简单程序例子中发现其中的4个程序里面至少包含8个错误。 ●一个抢答器程序在两个参赛者按下抢答按钮时,只有其中一个人的警报器能够发出警报; ●一个喷泉程序中,喷水组在几个指定时间上没有按要求停止喷水,或开始喷水; ●一个交通灯控制程序中,绿灯闪烁控制不正常;系统启动的时候,一个方向绿灯亮,另一个方向的红灯却不亮;强通结束之后,交通灯没有立即恢复正常运行; ●在另一个交通灯程序中,按下停止按钮之后,所有的灯熄灭,但两个方向人行道上却亮红灯。 我们认为这一发现是不同寻常的。每个程序员和教师都会犯编程错误,我们还从未在任何一本程序设计的教科书中发现如此高比例的程序错。这一现象初步证实了plc程序错误的广泛性和严重性。 本文将逐一分析上述每一个程序的错误,指出错误原因。其中大部分程序,我们给出纠正了错误的新程序。期望这一分析能够帮助plc程序员和教师提高plc程序设计的正确性。plc程序的执行原理以及梯形图的语义将在例子的介绍中给予解释。我们相信,通过分析错误来学习是掌握遍程技巧的好方法。 图1 plc构造原理图 2、抢答器程序 题目:抢答器程序 来源:plc应用技术开发与实践 编程平台:西门子公司 s7-200 问题描述: (1)主持人控制开始按钮; (2)3个抢答者每人控制自己的抢答按钮; (3)开始按钮按下之后所有警报器断电; (4)之后每个抢答按钮按下将使自己的警报器得电,并锁住其他抢答者输入信号的有效性。 变量分配: i0.0 主持人按钮; i0.1,i0.2,i0.3 分别为三个抢答者按钮; q0.0,q0.1,q0.2 分别为对应于抢答者的警报器输出; 原书给出的抢答器梯形图程序(见图2)。 图2 抢答器梯形图程序 plc程序语义: 上述梯形图程序的语义可以用比较简短的方式表达出来: q0.0 := (i0.1 or q0.0) and ~i0.0 and ~q0.1 and ~q0.2; q0.1 := (i0.2 or q0.1) and ~i0.0 and ~q0.0 and ~q0.2; q0.2 := (i0.3 or q0.2) and ~i0.0 and ~q0.0 and ~q0.1; 其中~i0.0表示i0.0的逻辑非。 plc的程序周期性地重复执行,每个周期时间很短。在一个周期中,plc将读入输入值(这里是i0.1,i0.2和i0.3),经过对上述程序的计算之后,把输出变量(这里是q0.0,q0.1和q0.2)的值送到外部。注意上述程序在每个周期中都重复执行。在每个周期中,程序的执行由上往下由左至右。 当一个抢答按钮按下之后(比如i0.1=1),对应的输出(q0.0)马上变成1。在下一周期中,该按钮方开(i0.1=0)程序的输出依然会保持为0,原因是程序依靠自反馈作用(orq0.0)。由于在两个程序段中含有~q0.1,它们的输出都无法变成1,直到主持人按钮i0.0把q0.0重新置0为止。 ●程序问题 如果两个抢答者在同一时刻按下按钮,在程序中处于前面的抢答者的警报器输出正常,另一个抢答者的警报器没有输出。 ●程序分析 本问题分成三个程序段,它们本应并行执行方能达到公平的效果。但plc的cpu只能顺序执行程序,在程序中位置处于前面的抢答者的输出产生之后,后面的程序输出就被立即阻断。两个按钮按下时,只有其中的一个得到响应。 plc的编程模式来源于继电器电路控制系统,在那些系统中,上述三个程序段对于三个并行运行的电路,转到cpu中之后,这些程序就不得不顺序执行。并行模型与顺序执行的冲突是许多程序错误的原因。在作者先前的论文中就对这一问题进行了分析[1]。 在顺序执行的机器上面实现plc并行语义是可能的。依然需要小心各种陷阱。下面的次尝试存在一个错误,再后面一个程序改正了这个错误,通过了程序测试。 ●程序修正尝试 克服上面问题的一个自然的想法是使用中间变量保存每个程序段的输出。这一思路导致下面的程序实现(见图3):
图3 程序修正尝试程序实现图 使用这一程序时,如果两个抢答者的按钮按下,对应的两个警报器会响。在下一周期,两个警报器的输出又会恢复到0。原因是每一个抢答输入都会导致另一个抢答无效,两个抢答输入就会导致对方无效。 ●终程序 下面的程序克服了上述问题,并且通过了基本的测试检查(见图4)。 它同前面程序不同之处在于把q0.0等变量的管辖范围放宽了,一旦q0.0为1,只要主持人按钮不按下,它的值就能继续保持下去。 图4 基本测试检查结果 3、喷泉程序 题目:plc在喷泉中的应用 来源:plc应用技术开发与实践 编程平台:三菱公司fx2n系列 问题描述 (1)喷泉有a,b,c 3组喷头; (2)按动开始按钮后,a组先喷,10秒后停,b组和c组喷; (3)b和c喷10秒后b停,再10秒后c停; (4)a,b又喷,5秒后,c也喷,持续10秒后全部停; (5)再5秒后重返上述(2)到(4)步; (6)按动停止按钮后,a,b,c 3组喷头全部停。 输入输出变量分配: x0001:开始按钮 x0002:结束按钮 y0001:a组喷头 y0002:b组喷头 y0003:c组喷头 内部继电器:m0—m5 定时器分配(见图5): t0:a组喷10秒; 0—10 t1:b,c组喷10秒; 10—20 t2:c组喷10秒; 20—30 t3:a,b组喷5秒;30—35 t4:a,b,c组喷10秒; 35—45 t5:a,b,c组停喷5秒; 45—50 同前一程序相比,这一程序中增加了t0,t1等定时器。定时器用t标识,它的上方是定时器变量名,下方是预定的定时延迟。本例使用的是ton类型定时器,这种定时器只要输入端由0转1计时就开始,在计时过程中,输入端必须始终保持为1,一旦定时器到时,它所对应的变量就立即由0转1。在计时过程中,如果输入端转0,则计时停止,定时器到时之后,只要输入端继续为1,那么计时器变量也继续保持为1,一旦输入变0,计时变量也转为0。本例中的定时器按十分之一秒为单位计时。 这个程序含有三个错误,它的某些喷头在预定停止的时刻没有停止,在预定开始的时刻没有开始。 程序错误(1):按照要求程序开始后20秒,c组喷发应该停止,但该程序却没有停止c的喷发。 原因分析 c的喷发受到m1,m2和m3的控制,它们分别控制c组的,第二和第三次喷发。在第二次喷发结束之后,m2为0,喷发本应停止,但调试中发现c的输出(y0002)继续为1,单步调试发现,此时m1为1,由此造成c组输出继续。分析发现,产生m1的梯形图有错。应该使用m1来产生反馈,但程序中用了b组的输出变量y0001。该变量恰好在c组第二次喷发之后重新置1,造成了c组继续喷发。将此处改成m1之后这一错误即可消除。 程序错误(2):程序开始后50秒,a组喷发应该重新开始,但实际运行中并未开始。 原因分析: 这是一个定时时间写错的简单错误。定时器t4设定的时间应为5秒(50),但梯形图中错写成100(该书指令表程序中也是写50,梯形图中是一个失误)。 程序错误(3):在纠正了上面两个错误之后,程序依然无法通过测试。50秒之后,c组不应该开始喷发,但实际运行中喷发。 原因分析: 50秒之后,程序进入下一周期。此时程序该如何运行在原书中没有清楚描述,这属于描述不全。根据程序的具体实现,可以看出作者的意图是在50秒之后把整个喷发过程重演一遍。基于这样的理解,程序应该在50秒之后开始a组喷发,但程序运行结果是,不但a组喷发,c组也喷发,后一行为不符合规定。 出现这一现象的原因在于,m0的梯形图中使用了y000来实现反馈。这一错误同个错误类似,只是这一方式在一个周期的运行中没有问题,在第二周期中就会出现问题。在该图中用m0取代y000就能消除这一错误。 在消除了以上问题之后得到梯形图如图6所示。 图5 定时器分配程序图 图6 梯形图 4、十字路口交通灯控制程序 题目:交通灯控制程序 来源:plc应用技术开发与实践 编程平台:omron公司cqm1系列 ●任务描述 工作顺序:启动按钮,南北绿灯,东西红灯,东西绿灯,南北红灯。按此顺序循环。 时序控制:(90秒周期) ●主干道 南北左转灯:绿10秒,黄2秒,红78秒; 南北直行灯:红10秒,绿30秒,绿闪3秒,黄2秒,红45秒; 东西方向左转灯和直行灯的工作方式与上相仿,但延迟45秒。人行道灯与主干道直行灯相同。 ●强通控制 打开强通开关,强通方向绿灯亮,断开强通开关,绿灯闪3秒,恢复正常控制; 闪烁控制,亮0.5秒,暗0.5秒,持续3秒; 这个程序比较长,不便全部抄录在此。这里仅指出程序中的几个错误,并列出相关的程序段。 图7程序的实现 程序错误(1):闪烁控制错误。闪烁过程通过一个专门的程序段控制,按要求该程序应该每隔0.5秒输出1,0.5秒输出0,不断循环。图7是书中该程序的实现: 其中只用到tim050一个定时器,计时单位为十分之一秒。omron的tim型定时器的工作方式同西门子ton型定时器相仿,当输入为1时启动计时,一旦输入转0,立即停止计时,定时器变量输出复位为0。 起始状态tim050的值为0,取反后送入定时器1,启动计时,5个单位之后到时定时器产生信号1。该信号经反馈之后,把0送入定时器,这一输入值立即把定时器输出重新变为0。该段程序只能产生非常短暂的1,而不是持续0.5秒的1。当该信号用于驱动绿灯时,无法产生正常的均匀闪烁效果。 ●程序修正(见图8) 图8 程序修正图 这里用了两个定时器,当个定时器tim050到时之后,它的输出信号1送到第二个定时器tim051启动后者计时。但tim051需要5个单位之后才能到时,在这段时间内,tim050依然的输入依然是1,它能够把1继续保持0.5秒,由此产生一个均匀的每隔0.5秒变化的脉冲。 程序错误(2):在系统初始启动阶段,南北方向绿灯亮,但东西方向的左转红灯和直行红灯没有点亮 原因分析:由于相关程序比较长,不便在这里展示,这里我们仅分析一下出错的原因及解决的办法。原程序中采用顺序启动各个颜色灯的方法。即左转绿灯10秒后启动直行绿灯,30秒后绿闪,2秒后黄灯,55秒红灯。(http://www.diangon.com/版权所有)按这一顺序运行时,一开始南北直行红灯的10秒缺掉了,东西左转红灯45秒漏了,后东西直行红灯55秒也漏了。要改变这一情况,需要改变后一程序,再引入两个定时器,把红灯控制切分成两段完成。 可能人们认为上一个问题不算严重,因为原来程序在启动一分钟之后就能达到正常。但下面的强通控制的错误确是比较严重的。所谓强通是指紧急车辆到达路口时,人工控制按下相应方向的强通开关,使得这一方向的绿灯亮,另一方向亮红灯。紧急车辆过去之后,强通开关方块,强通方向绿灯闪动三下之后,恢复原来的系统运行。 程序错误(3):强通按钮放开之后,按规定强通方向绿灯应该闪烁三下,熄灭,但实际情况是绿灯没有按照规定闪烁和停止,而是持续发亮。 原因分析: 我们以东西向直行绿灯控制程序段为例分析这一问题。 该程序中100.12为控制东西向绿灯的输出变量。该方向的强通通过hr0.00控制,强通按钮按下之后,该变量为1,从而引起100.12输出为1,绿灯亮。强通按钮放开之后,这条通路切断,hr0.01变为0之后,hr0.03会变为1,过程在这里略去。hr0.03所在的通路将产生一个3秒钟的闪烁脉冲。编程者的意图是通过它在结束强通之后制造一个绿灯闪烁过程。由于变量100.12的反馈存在,一旦该变量为1,它将自动地继续保持为1。只有两种方式可以使它恢复为0,一种是30秒定时器到时(tim010),另一个是另一方向的强通信号hr0.01。在同方向强通信号结束之后,一般情况下,上述两个信号均不会转为1,绿灯无法马上停止。系统并不产生规定的效果。 这是一个比较严重的错误,因为此处本应经过绿灯闪烁转为红灯,但系统却始终保持绿灯。这样的系统是无法接受的。 这一问题的解决比较复杂一点。由于我们的主要任务是发现错误,此地我们不再讨论如何修正这一错误的问题。 图9 东西向直行绿灯控制程序分析图 5、第二个十字路口交通灯控制程序 本节讨论另一本书上的交通灯控制程序中的错误。这一程序没有处理强通控制这样的复杂问题,人行道控制同主干道控制分开处理,结果在人行道控制上出现了错误。 题目:交通灯控制程序 来源:plc应用开发实用子程序 编程平台:西门子s7-200 时序控制:(90秒周期) 南北主干道 左转绿10秒,绿30秒,绿闪3秒,黄2秒,红45秒; 东西人行道:红13秒,绿27秒,绿闪3秒,红47秒; 东西主干道: 红45秒,左转绿10秒,绿30秒,绿闪3秒,黄2秒; 南北人行道:红58秒,绿27秒,绿闪3秒,红2秒。 注: (1)绿闪包括转向绿灯和转向绿灯; (2)东西人行道指东西两端的人行道。 测试显示该程序时序上运行正确,在关机时出了问题。 程序错误:按下系统停止开关,大部分灯都熄灭,但两个方向的人行道上亮起红灯。 程序分析: 我们以控制东西方向人行道红灯的变量q1.3的计算为例进行分析。下面把相关程序段专门抽出来进行分析(见图10)。 图10 相关程序段分析图 图中可见,当m0.4为0时q1.3将输出1。当t7,t8为0时m0.4必定为0。系统停止开关是i0.2,它按下之后会使m0.1变为0,该变量是控制系统活动的主要变量,它变为0将使一系列变量变为0,也包括t7和t8。这样做却没有关掉东西两端人行道的红灯。南北两端人行道红灯采用的是类似程序,也没有关掉。 程序修正: 只需把m0.1直接加入到人行道红灯的控制中即可。 6、结束语 本文分析了来自两本plc教材的4个程序例子,从中找出大大小小8个错误,并对这些错误的原因进行了分析。我们希望这个分析能够帮助程序员减少编程错误。 本文目的是为了揭示plc程序错误的普遍性。这些错误不能简单归咎于作者的失误,主 要原因是编程模式的复杂性以及测试手段的缺乏。 失误是人类的普遍行为。对于计算机程序这样复杂的对象,出错经常出现。程序编制过程本身就是一个不断尝试不断纠正错误的过程。在plc领域,离线的调试工具比较薄弱,迄今为止好的调试方式依然是现场调试,这一方式过于耗费时间,一般教师和学生都没有这样的条件。这是程序错误率高的根本原因。 |