从以上介绍可知,如为被动通信,编程的工作量主要在计算机方,所用的编程语言可以是BASIC、C、C++、VB、VC、JAVA、DELPHI及C++BUILT等,所有编程语言都可以用。
1.通信口设定及打开、关闭
使用普通串口,就要选用哪个口进行通信,以及确定有关通信参数,如波特率等。这些参数应与PLC所设定的参数完全相同。而在PLC方,这些参数一般也可相应软器件予以设定。
当然,这组通信口管理的程序仅仅与计算机配置、计算机操作系统及语言选用有关,除通信参数要与PLC一致外,其它的与PLC没有关系。
很多经验计证明,计算机与PLC通信不正常往往与这些通信参数设定不当有关。此外,与使用存盘文件类似,在通信前,应打开通信口,而在通信完毕,最好把通信口关闭。
2.发送通信命令
这与用什么网络及PLC的通信协议有关。如欧姆龙PLC可通过RS-232C口,使用HOST LINK协议,其格式如图5-106所示。
图5-106 C系列机发通信命令格式
如三菱FX系列机编程口通信协议,其命令帧格式如图5-107所示。
这里STX为ASCII码2,不可视字符,表示通信帧的开始;ETX为ASCII码3,也是不可视字符,表示通信帧结束;命令码有读或写等,占一个字节;数据项中有地址,有要读、写数据字节数,如写命令,还要继以相应要写的具体数据;累加和是从命令码开始到结束字符(含结束字符)间,所有字符ASCII码值的累加,超过两位数时,取低两位,不足两位时高位补0。所有命令码及所有数据均用十六进制表示。
3.接收数据
这也与用什么网络及PLC的通信协议有关。如欧姆龙PLC通过RS-232C口,使用HOSTLINK协议、发“读”命令,其后接收到的数据格式如图5-108所示。
图5-107 C系列机发通信命令格式
图5-108 接收数据
如命令成功执行,则“应答码”为00,图中的数据栏即为所读数据;如未成功,则“应答码”为相应错误码,无数据返回。
如欧姆龙PLC用HostLink协议、发“写”命令,其后接收到的数据格式为图5-109所示。(www.xing528.com)
图5-109 接收格式
如此命令成功执行,则“应答码”为00;未成功,则“应答码”为相应错误码,都无数据返回。
如欧姆龙PLC用HostLink协议、发通信测试命令(TS码),其接收格式与发的命令相同。
对三菱FX系列机编程口通信协议,如响应写命令,则只是1个字符。已成功执行为ASCII码06H,未能执行则为ASCII码15H。如响应读命令,未能执行也是ASCII码15H;成功执行,其响应帧如图5-110所示。
图5-110 接收数据
4.处理数据
计算机从PLC读取数据总是要进行处理。它包括:
数据变换:如字到位的变换、ASCII码到数字的变换、二进制十进制变换等;
数据显示:可以用文字显示,也可用图形显示,有时还可用动画显示;
数据存储:可定时的以文件的形式存储,也可以数据库的形式存储;
数据打印:必要时,可把采集的数据打印出来,供分析及使用。
5.人机交互界面
如果要通过计算机,对PLC所控制系统进行远程操作,那还要在计算机上设计相应的人机交互界面。在这个界面上应有如按钮、指示灯、输入数据窗口、选择键等,以方便人机对话。
以下将介绍几个与通信有关的计算机编程方法与程序实例。至于数据处理、人机交互界面的程序,因牵涉到较多的计算机编程问题,不是本书讨论的课题,只好略之。
提示1:上述四个要点是相互关联的,且有相应时序的配合。从打开通信口、发送通信命令到接收数据,要有等待时间。因为,计算机命令传送、PLC处理命令及PLC返回数据传送都需要相应时间。为此,不能执行发送命令后,立即就去接收数据。那样,肯定会出现通信失败。而对单工的通信口,如RS-485,还要考虑到接收与发送状态的转换时间。尽管这时间仅几毫秒,但也要等待
提示2:如不用通信协议,而要进行通信,除了计算机方的程序外,还必须弄清PLC的有关通信指令,编写相应接收数据、发送数据的PLC程序。而且,双方都要运行相应程序,才能实现通信。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。