自动化在线 自动化在线 数据加载中... 数据加载中...
首页 | 下载系统 | 供求信息 | 新闻系统 | 企业信息 | 产品信息 | 展会信息 | 论坛
首页 > 新闻系统 > 嵌入式系统 > 嵌入式系统技术
 
VB与西门子S7-300的通讯方式
作者: 发布时间:2007-12-16 04:42:28 来源: 繁体版

  西门子S7-300通讯协议不公开,我们无法按相应的协议写程序,但是西门子提供给我们更为简单的方式来与之通讯。

  大家可以在某些组态软件中找到这样一个DLL:w95_s7.dll,就是这个DLL,使的我们与PLC进行数据交互极为简单

  在DLL时定义了如下一些接口函数:

  Public Declare Function load_tool Lib "w95_s7.dll" (ByVal nrAs Byte, ByVal dev As String, adr As Type_PlcAddressType) As Long

  这个函数是初始化连接用的,这个过程比较慢,大约要20S左右,这大概也是西门子为什么启动那么慢的原因吧;包括了如下几个参数:nr是指激活的连接数,范围是1-4

  dev是设备名,SetPG/PC里面有这个指定,一般用S7ONLINE就可以了,adr是指参数表,它是这样的一个type:

  Type Type_PlcAddressType

  bytAddress      As Byte’这是站号,默认是2
  bytPlcSegmentID  As Byte’SegmentID,默认是0
  bytPlcSlotNo    As Byte’槽号,默认是2
  bytPlcRackNo    As Byte’Rack号,默认是0
  End Type

  Public Declare Function new_ss Lib "w95_s7.dll" (ByVal nr As Byte) As Long

  这个函数没用到,可以去找一些资料来看

  Public Declare Function unload_tool Lib "w95_s7.dll" () As Long’这个函数是程序退出时用的,用来断开连接
  ’ no, amount, value

  Public Declare Function d_field_read Lib "w95_s7.dll" (ByVal dbAs Long, ByVal nr As Long, ByVal anz As Long, value As Byte) As Long’这是读取DB块中数据的函数

  db 是指DB块号,比如DB10,则这个参数指定为10就可以了

  nr 是指起始地址,比如读DB10的第4个字节中数据,则指定为4

  anz是指读取的长度

  value是返回的值,表面上看这是一个字节,但实际上它是一个字节数组,比如你要读取二十个字节的数据,那么应定义dim ReturnValue(20) as byte,然后用ReturnValue来做为传递的参数

  Public Declare Function d_field_write Lib "w95_s7.dll" (ByVal db AsLong, ByVal nr As Long, ByVal anz As Long, value As Byte) As Long

  这是写DB块数据的函数,参数跟读数据函数一样,不多说了

  ’ no, amount, value

  Public Declare Function e_field_read Lib "w95_s7.dll" (ByVal nr AsLong, ByVal anz As Long, value As Byte) As Long

  ‘这个是用来读取外部输入的值,包括开关量输入,模拟量输入

  nr 是指起始地址

  anz是指读取的长度

  value是返回的值,表面上看这是一个字节,但实际上它是一个字节数组,比如你要读取二十个字节的数据,那么应定义dim ReturnValue(20) as byte,然后用ReturnValue来做为传递的参数

  从分析也可以看出,只有外部输入的值不可以写,因而它单独存在

  Public Declare Function a_field_read Lib "w95_s7.dll" (ByValnr As Long, ByVal anz As Long, value As Byte) As Long

  ‘这是用来读取外部输出的值,包括开关量输出,模拟量输出,参数可以参照上面的函数,

  Public Declare Function a_field_write Lib "w95_s7.dll" (ByValnr As Long, ByVal anz As Long, value As Byte) As Long

  ‘这是用来写外部输出的值,包括开关量输出,模拟量输出

  nr 是指起始地址,

  anz是指读取的长度

  value是返回的值

  Public Declare Function m_field_read Lib "w95_s7.dll" (ByValnr As Long, ByVal anz As Long, value As Byte) As Long

 1/2    1 2 ›› ›|
  
评论】【加入收藏夹】【 】【打印】【关闭
来顶一下
近回首页
返回首页
※ 相关信息
 ·成功维修蒙牛2台西门子触摸屏TP2  (2008-07-18)
 ·成功维修山东枣庄6台海泰克触摸屏  (2008-07-18)
 ·成功维修安徽铜峰电子集团7台西门  (2008-07-18)
 ·成功维修洛阳铝厂4台施耐德PLC  (2008-07-18)
 ·成功维修同仁堂21台西门子PLCS7-  (2008-07-18)
 ·科昊推出KH300制药厂专用温度记录  (2008-06-17)
 ·科昊最新推出KH105-T台式巡检仪  (2008-06-09)
 ·科昊最新推出DP4-RMA真有效值电压  (2008-06-09)
 ·西门子大功率电压源型变频调速电  (2008-06-05)
 ·热门技术PLC西门子S7-300,400,  (2008-05-19)

关键:方式  通讯  S7-300  西门子  As  Long  value  ByVal  anz  读取  

※ 其他信息
基于VI的舰船电子装备测试系统硬件设计
VB与s7200通讯例子……读取温度值的程序范例
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

 
 搜索新闻
 最新新闻
·货架
·孟加拉纺织机械展/第六届孟加
·巴西纺织机械展/纺机展/2009
·印度纺织机械展/2009年印度新
·土耳其纺织机械展/2009年土耳
·热烈祝贺上海玛蒙工业有限公
·《功能安全技术与应用培训班
·2008-2009全球环保水处理及能
·2009南非国际水处理展览会
·2009中东迪拜(国际)环保、
 热点新闻 
·PLC课程设计课题——三层电梯
·先进控制技术及应用
·变频器原理
·一般变频器常见故障及处理
·CK6432(FANUC-0TD)数控车床
·集成温度传感器AD590及其应用
·3G无线接入网IP化传送承载方
·谈步进电机的PLC控制方法
·基于PLC的机械手控制设计
·浅谈单相电度表的反转
数据加载中..

网站地图
Autooo.Net 版权所有
Copyright © 2007 All rights reserved