你现在位置:首页>技术论文>数据通讯>正文
VB与西门子S7-300的通讯方式
日期:2007-9-5 23:45:43 来源:本站整理  
点击: 作者:未知
点击【】放大字体.

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

WW.W_PLC※JS_C,OM-PL,C-技.术_网

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

WW.W_PLCJS_COM-PLC-技.术_网

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

P.L.C.技.术.网——可编程控制器技术门户

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

WWW_PL※CJS_COM-PLC-技.术_网

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

WW.W_PLCJS_COM-PLC-技.术_网

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

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

Type Type_PlcAddressType

WW.W_PLC※JS_C,OM-PL,C-技.术_网

    bytAddress      As Byte’这是站号,默认是2

W1WW_P4LCJS_COM-PLC-技.术_网

    bytPlcSegmentID  As Byte’SegmentID,默认是0
WWW.PLCJS.COM——可编程控制器技术门户

    bytPlcSlotNo    As Byte’槽号,默认是2
WWW.PLCJS.COM——可编程控制器技术门户

    bytPlcRackNo    As Byte’Rack号,默认是0
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

End Type
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

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

WWW.PLCJS.COM——可编程控制器技术门户

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

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

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

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

’ 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块中数据的函数

WWW_P※LCJS_CO※M-PLC-技-.术_网

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

plcjs.技.术_网

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

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

anz是指读取的长度

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

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

WWcW_PLCJS_COM-PLC-技.术_网

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

WWW.PLCJS.COM——可编程控制器技术门户

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

——可——编——程——控-制-器-技——术——门——户

’ no, amount, value

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

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

WWW_PL※CJS_COM-PLC-技.术_网

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

WWW_PLC※JS_COM-PmLC-技.术_网

nr 是指起始地址

WWW_PLCJS_COM-PLC-技.术_网

anz是指读取的长度

WWW.PLCJS.COM——可编程控制器技术门户

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

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

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

WWW_PLCJS_COM-PLC-技.术_网

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

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

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

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

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

P.L.C.技.术.网——可编程控制器技术门户

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

WW.W_PLCJS_COM-PLC-技.术_网

nr 是指起始地址,

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

anz是指读取的长度

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

value是返回的值

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

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

plcjs.技.术_网

读取内存变量的函数(M的值)

P.L.C.技.术.网——可编程控制器技术门户

nr 是指起始地址

WWW_PLCJS@_COM%-PLC-技.术_网

anz是指读取的长度

本新闻共2页,当前在第11 2  
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行