找回密码
 注册

QQ登录

只需一步,快速开始

搜索

Visual Basic 6实现通过西门子PPI协议与S7-200通信源码

[复制链接]
山海致远 发表于 2018-4-26 00:39:08 | 显示全部楼层 |阅读模式
1.png
最近要做一个项目,使用S7-200,但是数据交换量不是很大,用WINCC感觉比较浪费,所以就想自己做个监控软件,就想到了用VB编写程序,来调用w95_s7.dll动态链接数据库。通过3天的努力,终于小有成果,一下是我试验基本方法。供大家参考!
1.Prodave 是用于pc 与s7 系列plc 之间的数据链接通信的工具箱。其实质就是用户通过调用“w95_s7.dll”等库函数来解决 PLC 与PC之间的数据交换和数据处理问题。 所需硬件为:CPU22x,PC/PPI编程电缆,带COM口的PC。这可能是最简单的配置,很容易实现试验的目的。这里不需要安装Prodave软件,只要把“w95_s7.dll”文件拷贝到您程序相应的目录中去即可。
2.通讯设置:打开“控制面板”中“设置PG/PC接口”选项,在“应用程序访问点”列表框内选择“S7ONLINE(STEP7)  PC/PPI Cable”,在其属性内的“超时”可以设置大点,这里设置为100ms,“波特率”设置为9.6kbps(因为我的pc/ppi电缆为国产的,不支持多主站),“地址”为0。3。源代码:①PLC程序:LD  I0.0   MOVW  4766, VW0 ②VB程序:
  1. ****在模块中声明****:
  2. Public plcadr As plcadrtype
  3. Public gb_PlcConnected As Boolean
  4. Type plcadrtype
  5.      adr As Byte                ‘站地址,默认值为2
  6.      SEGMENTID As Byte       ‘段标识符,固定值为0
  7.      SLOTNO As Byte           ‘槽的编号,默认值为2
  8.      RACKNO As Byte           ‘机架号,固定为0
  9. End Type
  10. Public Res As Long
  11. Declare Function load_tool Lib "w95_s7.dll" (ByVal nr As Byte, ByVal dev As String, adr As plcadrtype) As Long
  12. 。。。。。。。                  ‘省略其它定义函数。
  13. Declare Function as200_vs_field_read Lib "w95_s7.dll" (ByVal nr As Long, ByVal anz As Long, value As Byte) As Long        ‘读200PLC V存储区的数据函数
  14. ****在窗体中声明****
  15. Private Sub Form_Load()
  16. Dim buffer(1) As Byte
  17. plcadr.adr = 2
  18.     plcadr.SEGMENTID = 0
  19.     plcadr.SLOTNO = 2
  20.       plcadr.RACKNO = 0
  21.    Res = load_tool(1, "S7ONLINE", plcadr)
  22.    Res = as200_vs_field_read(0, 2, buffer(0))
  23.     If Res <> 0 Then
  24.          MsgBox ("PLC连接错误")
  25.         gb_PlcConnected = False
  26.     Else
  27.         gb_PlcConnected = True
  28.         MsgBox ("plc连接正确")
  29.         Label1.Caption = buffer(0) * 256 + buffer(1)
  30.     End If
  31. End Sub

复制代码
通过以上程序可以正确读出PLC中的数据。之后可以扩展内容,编写一个监控软件。
西门子PPI协议,VB源码.rar (67.21 KB, 售价: 5 E币)
用VB编写PC与S7-200通讯软件,带原代码.rar (82.13 KB, 售价: 5 E币)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|ELEOK |网站地图

GMT+8, 2024-11-23 17:57

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表