(1)S7-200 PLC程序的编制
泵站监控的PLC程序包括主程序、子程序SBR—0、SBR—1和中断子程序INT—0,程序清单及注释如图10-31~图10-34所示。
图10-31 主程序
图10-32 子程序SBR—0
图10-33 子程序SBR—1
图10-34 中断子程序INT—0
(2)Visual Basic软件编程
Visual Basic是一种功能强大、简单易学的程序设计语言。它不但保留了原先Basic语言的全部功能,而且还增加了面向对象程序设计功能。它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串行口的计算机通信程序。在泵站系统中,正是利用MSComm控件与S7-200进行通信。
图10-35 选定Microsoft Comm控件6.0
Visual Basic软件需要先选定Microsoft Comm Control控件6.0(见图10-35),同时可以从工具栏中看到标识(见图10-36)。
MSComm控件提供了两种处理通信的方式,一种为事件驱动方式,该方式相当于一般程序设计中的中断方式。当串行口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。本例采用该方式。另一种为查询方式,在用户程序中设计定时或不定时查询MSComm控件的某些属性是否发生变化,从而确定相应处理方法。在程序空闲行时间较多时,可以采用该方式。
利用MSComm控件实现计算机通信的关键是理解并正确设置MSComm控件众多属性。以下是MSComm控件的常用属性:
●Commport:设置或返回串行口号。
●Settings:以字符串的形式设置或返回串行口通信参数。
●Portopen:设置或返回串行口状态。
●InputMode:设置或返回接收数据的类型。(www.xing528.com)
●Inputlen:设置或返回一次从接收缓冲区中读取字节数。
●InBufferSize:设置或返回接收缓冲区的大小,默认值为1024字节。
●InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。
●Input:从接收缓冲区中读取数据,并清空该缓冲区,该属性设计时无效,运行时只读。
●OutBufferSize:设置或返回发送缓冲区的大小,默认值为512字节。
●OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。
●Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。
●Rthreshold:该属性为一阈值。当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为ComEvReceive,并产生OnComm事件。用户可在OnComm事件处理程序中进行相应处理。若Rthreshold属性设置为0,则不产生On-Comm事件。例如用户希望接收缓冲区中达到一个字符就接收一个字符,可将Rthreshold设置为1。这样接收缓冲区中接收到一个字符,就产生一次OnComm事件。
●Sthreshold:该属性亦为一阈值。当发送缓冲区中字符数小于该值时,MSComm控件设置Commevent属性为ComEvSend,并产生OnComm事件。若Sthreshold属性设置为0,则不产生OnComm事件。要特别注意的是仅当发送缓冲区中字符数小于该值的瞬间才产生On-Comm事件,其后就不再产生OnComm事件。例如Sthreshold设置为3,仅当发送缓冲区中字符数从3降为2时,MSComm控件设置Commevent属性为ComEvSend,同时产生OnComm事件,如发送缓冲区中字符始终为2,则不会再产生OnComm事件。这就避免了发送缓冲区中数据未发送完就反复发生OnComm事件。
图10-36 MSComm工具栏
●Commevent:这是一个非常重要的属性。该属性设计时无效,运行时只读。一旦串行口发生通信事件或产生错误,依据产生的事件和错误,MSComm控件为Commevent属性赋不同的代码,同时产生OnComm事件。用户程序就可在OnComm事件处理程序中,针对不同的代码,进行相应的处理。
Visual Basic界面如图10-37所示,Visual Basic程序如图10-38所示。
图10-37 Visual Basic界面
图10-38 Visual Basic程序
图10-39 “PPI模式→自由口模式”
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。