vb控制plc的方法:首先必须知道PLC的通讯协议,然后通过系统语言将这个协议以字符串的形式发往计算机的RS-232口,这样计算机通过PLC就可以控制执行机构了。
VB是一种由 Microsoft 公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不管是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
PLC是一种可编程逻辑控制器,它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术 *** 作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
一般都是编程思路不对,现在网上流行的接收方式是:
Tim = Timer
Do '等待
If Timer > Tim + 1 Then: MsgBox "与PLC没有连接!": Exit Sub
Loop Until MSComm1InBufferCount >= 8
这种接收方式非常害人,根本不可能用于实际工程!
一是运行卡机,二是实时读取过程,在 *** 作某个写命令时,反映非常慢,如果您加上释放命令(DoEvents)增加反映速度,又会造成实时读取的数据偶然乱跳!
我玩上位机与PLC通讯多年,VB、DELPHI、VFP、VBNET都编制过与PLC的通讯程序!
朝2个方向去下手:
1用VB编制OPC服务器。用VB来开发OPC服务器,采用OPC开发包去实现,比较快捷,但开发包是要买的,否则还是用c来开发,要费时了。
2弄清西门子PLC的通讯协议:
200系列PLC一般用PPI和MODBUS协议。
300系列PLC一般用MPI和profbus,modbus,及以太网通讯协议。 先从modbus去下手比较容易。也可以去西门子网站下载他的驱动 DLL来开发,但例子很少,组态王软件中也有这个dll。。
上位机采用组态软件WinCC,针对串口 *** 作,可以通过调用编写好的VB串口通讯程序来实现数据交换,也可以用全局脚本VBS实现对串口的访问,在WINCC图形编辑器中调用Active X控件MSComm,如添加按钮,按钮链接了一个VBS鼠标动作,主要是对串口进行初始化。在MSComm中组态了一个oncomm事件,利用事件触发的形式对串口进行读写 *** 作。在按钮1的鼠标事件中做端口初始化,具体代码如下:
Sub procedure20
,打开串口
Dim objMSComm1
Dim tagConnection
Set objMSComm1 = HMIRuntimeScreens("Main")ScreenItems("MSComm1")
Set tagConnection = HMIRuntimeTags("Connection")
If objMSComm1PortOpen = False Then
objMSComm1Commport = 1
objMSComm1Settings = "9600,e,7,1"
objMSComm1InputLen = 0
objMSComm1PortOpen = True
tagConnectionWrite(True)
HMIRuntimeTrace("Port open" & vbCrLf)
Else
HMIRuntimeTrace("Port is already opened" & vbCrLf)
End If
End Sub
Sub procedure1()
‘关闭串口
Dim objMSComm1, tagConnection
Set objMSComm1 = HMIRuntimeScreens("Main")ScreenItems("MSComm1")
Set tagConnection = HMIRuntimeTags("Connection")
If objMSComm1PortOpen = True Then
objMSComm1PortOpen = False
tagConnectionWrite(False)
HMIRuntimeTrace("Port close" & vbCrLf)
End If
End Sub
以上就是关于vb怎么控制plc全部的内容,包括:vb怎么控制plc、vb编写的plct通信程序运行一段时间后死机怎么办(vb与omron plc通信,用了一个TIMER进行实时读取plc数据、VB设计 通过OPC与西门子PLC通讯等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)