现在的 AGV越来越多地开始配备触摸屏了。使用触摸屏可以方便地设置AGV的参数,例如运动速度、充电电压等等,而不需要每次都将程序下载到PLC。既然我们选择了西门子的PLC,当然触摸屏选择西门子是Zui配对的,但是考虑到西门子的触摸屏有点贵,我们选择国产的品牌。国产触摸屏的质量也很可靠,而且价格合理,代表厂家有:威纶通、昆仑通态。由于西门子的zhiming度,大多数触摸屏都会支持。但是如果你用其它品牌的PLC,那zuihao向触摸屏厂家询问是否支持你的PLC,否则是无法通讯的。
我选择昆仑通态的触摸屏,它采用24V直流供电,并配有网口,用普通网线将触摸屏和 S1200 连接,并将触摸屏的 IP 地址设置为与PLC 所在同一网段(例如192.168.0.3)即可实现和 PLC 的互联。设置 IP的方法是上电后在进入正式界面之前,在屏幕的任意位置点击一下即可进入设置界面。
我们如何使用触摸屏呢?我们需要对触摸屏进行编程,或者说“组态”。编程需要使用昆仑通态自己的组态软件:MCGS,可以在它的guanfangwangzhan免费下载。
在你的电脑上安装该软件,注意在软件中需要输入 PLC的地址才能读写数据。触摸屏上只有一个网口,所以你可以用网线将触摸屏连接到你的电脑。我们注意到 S1200有两个网口,所以一种更方便的连接方式是,将触摸屏连接到 S1200 上,然后将 S1200连接到你的电脑,这样同样能对触摸屏进行编程。 触摸屏Zui基本的功能就是读写 PLC的内存(因此它也是PLC的上位机)。要实现这个功能非常简单,只需要在 MCGS 中对 PLC的变量进行关联即可。
(十)PLC编程
10.1 编程工具 STEP 7购买了S1200并不意味着你能免费使用它的开发软件。但是没关系,网上有很多破解软件。有意思的是,其中有些资源就是西门子公司的人故意释放出来的,他们可能想占有更多的市场。要对西门子的PLC 编程必须使用专用的软件:STEP 7 ,下图是 STEP 7 的安装过程。
实际上,STEP 7是过时的名称,现在西门子想将它和另外几个自动化软件都统一成一个平台,适用于西门子旗下所有的设备,这个平台被称为:TIAPortal(博途),本文使用的就是 TIA V13。西门子公司为了保持延续性,软件的名称有时是 STEP 7,有时又用TIA,本文我为了与历史统一还叫 STEP 7 好了。西门子的软件跟硬件一样种类繁多,光 STEP 7就有几个版本,例如专业版(professional SP1,如下图左所示),而每个版本又有不同的更新包。注意 SP1可能缺少某些功能(下面我会提到),因此我使用了更新包。具体来说,我使用的是 STEP 7 V13.0 SP1Upd8,如下图右所示。
在软件安装时我们注意到有这样的说明:STEP 7是用于编程的工程组态工具。要使用PLC,编程只是一方面,还有一个重要的工作就是“组态”。“组态”说白了就是“配置”,配置 PLC的输入输出接口、参数、功能等等。首先,在“设备组态”页面选择我们的 PLC 型号就可以了。
10.2 西门子PLC的硬件资源要想用好PLC,就要熟悉它的一些特点,下面我们就了解一下S1215C 的特点。1215C的内存有多大呢?
我们用电脑连接上PLC,然后在博途软件左侧栏双击“在线和诊断”,然后在打开窗口中点击“存储器”,如下图所示。 可以看到这里有三个存储器,分别是:装载存储器、工作存储器和保持存储器。并且可以看到三个存储器的大小,分别是:1. 装载存储器:4194304 404 Byte ÷1024÷1024=4 \div1024 \div 1024= 4÷1024÷1024=4MB2.工作存储器:128000 128000128000 Byte ÷1024=125 \div 1024=125÷1024=125KB 3. 保持存储器:10240 1024010240 Byte ÷1024=10 \div 1024=10÷1024=10KB这和系统手册中给出的数值是一样的,如下: 你看完是不是都哭了,10年前的手机存储器都比这要大。这三个存储器各有什么作用呢?
1. 装载存储器:用于存储用户项目文件(例如:用户程序、组态信息),相当于硬盘;2.工作存储器:CPU在执行用户程序时会将一些项目内容从装载存储区复制到工作存储区,相当于电脑的内存;3.保持存储器:掉电后数据仍然保持。如果你希望一些数据能在断电后一直保持就要使用这个存储器。但遗憾的是,小气的西门子公司只给了我们10KB。
PLC 扫描一次程序需要多长时间呢?
PLC会自动记录时间,在同一页面,打开“循环时间”,就能看到PLC完整执行一遍程序需要的时间,如下图所示。这个时间不是固定的,取决于你的程序长短,一般的执行时间在3毫秒以内。
10.3 西门子PLC的软件资源西门子提供哪些函数运算呢?工业控制语言唯一的guojibiaozhun——IEC61131-3规定了46个基本函数,西门子都支持。除此以外,我们常用的还有定时器等。AGV属于移动机器人,而机器人的控制本质是数学计算,所以我重点说说其中的数学函数,共有18个:
数字运算:ABS、SQRT、LOG、LN、EXP、SIN、COS、TAN、ASIN、ACOS、ATAN;算术运算:ADD、SUB、MUL、DIV、MOD、EXPT、MOVE;当然还有:>、< 比较运算符。翻开另一款控制器品牌——倍福的手册,你会发现它同样支持这几个初级函数。在组态界面,双击 CPU 模块能看到这款 PLC 的其它功能介绍,例如周期定时器,如下图所示。
如果你使用了触摸屏,有一点值得注意:在“保护”页面中有一个选项需要勾选:“允许从远程伙伴使用PUT/GET通信访问”,如下图所示。如果不勾选这个选项,你看你无法用触摸屏读写PLC 内存中的数据。让笔者奇怪的是,像这样的细节几乎在所有的手册、教程中都找不到,但却又很重要。
10.4 西门子PLC的编程方式西门子PLC 的编程符合国际工业编程语言标准 IEC-611313,因此跟倍福等厂家的差不多。
10.4.1 定义常量有些量我们要经常使用(例如圆周率 π\piπ),如果每次都用数值来做运算一方面输入很容易出错,另一方面如果想对其进行更改那要改很多处,非常繁琐。一个方便的做法是将其定义为一个全局的“常数”。使用PLC 和 C语言等gaoji语言相同的一点是,你需要为变量分配内存地址。分配好地址后如何对其赋值呢?因为常量只需要赋一次值即可,所以我们选择在Startup 块中对其赋值。Startup 块在每次 PLC 上电后只执行一次。西门子中有些块的序号是系统预留的,比如Startup 就是OB100。我们注意到,在博图软件中,全局变量用双引号表示(例如"PI"),而局部变量前面带个井号(下面会碰到)。