vb.net读写opc vb读写文件

VB.NET的OPC读取西门子PLC数值转换12601, 转换成16进制是3139,16进制 ASC吗31对应字符1,39对应9 。后面的用这个思路去转换就对上了 。
0001 2569这两个应该是和格式相关的字符 。0001一般就是开始的意思 。
一个变量包含两个字符,转换算法如下 。
1 。取高位字符,除以H100 , H是VB中16进制表示法 。除以H100效果是右移8位 。位了保险起见,再和H00FF做与运算,保证取得的ASC码是合法的 。
2 。取低位字符 , 与H00FF做与运算,去掉高位数据,剩下的就是低位ASC码 。
3 。将ASC码转换为字符,用CHR函数即可 , 然后连接所有的字符即可得String
西门子PLC的DB块地址在vb.net中应该如何书写我做梯形图开始的,对于VB不太懂 , 是不是可以换个思路,不直接读PLC,而是通过wincc的OPC映射?这样只要找到数据在wincc中的符号名,就能通过OPC获取
vb.net如何建立OPC通讯读取WINCC中的变量值您好vb.net读写opc,vb.net读写opc我用过vb.net读写opc的是S7-200 PLC与WINCC通讯 , 两者通讯必须使用西门子提供的软件PC_ACCESS 。在PC_ACCESS中建立变量,地址要与PLC变量地址对应 。然后通过wincc的OPC服务器添加PC_ACCESS里面的变量即可 。这样WINCC就和PLC变量链接上了vb.net读写opc!
如何用VB编写OPC客户端程序 开发OPC 客户端程序时,首先应该生成OPC 服务器支持的OPC 对象,然后就 可以使用OPC 对象支持的属性和方法 , 对其进行各种操作 。这样使得客户程序可 以像使用自己支持的数据和功能一样,去使用服务器对象支持的数据和功能 。在 VisualBasic6.0 里,是以对象为单位对OPC 服务器进行访问的 。通过OPC 自动化 服务器的对象模型,可以得知OPC 自动化接口由以下四种对象所定义 。1. OPCServer 服务器对象OPCServer 的一个实例,OPC 服务器自动含有一个OPC 组集合 对象,并可在其基础上生成一个OPC 浏览器对象 。OPCServer 服务器对象在使用其它OPC 对象前必须生成,也就是说在引用 其他对象之前必须先创建OPCServer 。OPCServer 对象提供了对数据源访问和通 信的方法,其提供了“Connect”方法来连接OPC 自动化服务器 。主要属性: StartTime(只读属性,服务器启动运行的时间) CurrentTime(只读属性,返回服务器显示的当前时间) LastUpdateTime(对于本OPC 应用程序的最后数据更新时间) MajorVersion(只读属性,OPC 服务器的主版本号) MinorVersion(只读属性 , OPC 服务器的次版本号) Bandwith(只读属性,返回OPC 服务器的不敏感区的百分比) ServerState(只读属性,返回服务器的运行状态,这个属性是比较重要的 , 方 便客户端程序查询服务器的状态,从而达到排除故障的目的) ServerName(只读属性,返回客户程序所要连接的服务器名 , 也就是OPC 服 务器的ProgID) ServerNode(服务器所在计算机名或者计算机的IP,用于连接远程的计算机) 等 。主要方法: GetOPCservers(获得己经注册的OPC 服务器的程序标识符 , 即ProgID) Connect(用来建立与OPC 数据存取服务器的连接) Disconnect(断开与服务器的连接) CreatBrowser(创建OPC 浏览器的对象)等 。事件: 只有一个ServerShutDown(关闭服务器 , 这个事件在服务器即将关闭之前发 生,OPC 服务器以此通知OPC 客户程序预告即将关闭,OPC 客户程序应该在接 到此事件通知后,立即清除所有的OPC 组并断开与OPC 服务器的连接) 。
vb怎么读取或修改opc变量值首先申明OPC对象:
Option Base 1
Dim WithEvents ServerObj As OPCServer'OPC Server对象,连接OPC服务器
Dim GroupsObj As OPCGroups'OPC Groups对象,添加OPC组
Dim WithEvents GroupObj As OPCGroup'OPC Group对象
Dim ItemsObj As OPCItems'OPC Item集合
Dim ServerHandles() As Long'服务器端OPC Item的句柄
Dim ClientHandles() as Long'客户端OPC Item的句柄
Dim ItemId(2) As String
Dim Errors() As Long
接下来 , 生成各个对象:
If ServerObj Is Nothing Then Set ServerObj = New OPCServer
'连接OPC服务器
If ServerObj.ServerState = OPCDisconnected Then
ServerObj.Connect ("OPC.SimaticNET") '假设OPC服务器运行在本机
End If
If GroupsObj Is Nothing Then Set GroupsObj = ServerObj.OPCGroups
If GroupObj Is Nothing Then Set GroupObj = GroupsObj.Add
If ItemsObj Is Nothing Then Set ItemsObj = GroupObj.OPCItems
GroupObj.IsActive = True'设置组为活动状态
'假设有两个数据源,一个是8位开关量输入,一个是8位开关量输出
ItemId(1) = "S7:[S7 connection_1]IB0"
ItemId(2) = "S7:[S7 connection_1]QB0"
ClientHandles(1) = 1
ClientHandles(2) = 2
'添加组项目,ServerHandles数组的值为各个OPC Item的服务器句柄,
' ClientHandles数组的值为各个OPC Item的客户端句柄,由应用程序设定
Call ItemsObj.AddItems(2, ItemId, ClientHandles, ServerHandles, Errors)
VB.NET 怎么读写二进制文件 , 类似Open本示例阐释二进制文件的基本输入和输出(使用 BinaryReader、BinaryWriter 和 FileStream 类 。在如何创建日志文件标题下面有一个类似的主题 。读写二进制信息使您可以创建和使用通过其他输入和输出方法无法访问的文件 。本示例还展示写入非字符串数据,并展示二进制 I/O 的功能 。
尽管计算机上的文件可以不同的类型和文件存储,但是,二进制格式是文件的较常用格式之一 。此处对创建二进制文件的简短介绍使用基类 BinaryReader 和 BinaryWriter 从文件获取信息,并将信息放入文件 。这些类中的每个类均封装一个信息流,因此 , 在进一步操作之前,需要创建一个可用于来回写信息的流 。因为要创建文件,所以可使用 FileStream 来公开特定文件,在此情况下,如果该文件已存在,则可以修改该文件,或者如果该文件尚不存在,则可以创建该文件 。在有 FileStream 之后,可以使用它来构造 BinaryReader 和 BinaryWriter
在读入信息之后 , 可以对信息进行所需的任何操作 。但是,在某些时候 , 您可能想要将信息写回文件,因此需要 BinaryWriter 。在本示例中 , 您将使用 Seek 方法将信息追加到文件结尾,因此,在开始写入之前,请确保指向文件的指针位于文件结尾 。在使用 BinaryWriter 写入信息时有多个选项 。因为 Write 方法有足够的重载用于您能够写入的所有信息类型,所以 , 可以使用 Write 方法向您的编写器封装的流写入任何标准形式的信息 。本情况下,还可以使用 WriteString 方法向流中写入长度预先固定的字符串 。
VB Source:VB\ReadWrite.aspx
%@ Import Namespace="System.Text" %
%@ Import Namespace="System.IO" %
script language="VB" runat=server
Class TestBinary
Public Shared Function ReadFile(selection As String) As String
Dim output As StringBuilder = New StringBuilder()
Dim fs As FileStream = New FileStream("data.bin", FileMode.OpenOrCreate)
Dim r As BinaryReader = New BinaryReader(fs)
Try
r.BaseStream.Seek(0,SeekOrigin.Begin)' 将文件指针设置到文件开始
' 因为不同数据类型之间的很多转换结果都是不可解释的,
' 所以当在其他类型与二进制数据之间进行转换时 ,
' 必须捕捉可能引发的任何潜在的异常...
' 能够正确读取数据依赖于如何写入信息...
' 这与写日志文件时不同 。
Do While r.BaseStream.Positionr.BaseStream.Length'当未到达文件结尾时
Select Case selection
Case "Boolean"
output.Append( r.ReadBoolean().ToString() )
Case "String"
output.Append( r.ReadString() )
Case "Integer"
output.Append( r.ReadInt32().ToString() )
End Select
Loop
Finally
fs.Close()
End Try
return output.ToString()
End Function
Public Shared Function WriteFile(output As Object, selection As String) As String
Dim fs As FileStream = New FileStream("data.bin", FileMode.Create)
Dim w As BinaryWriter = New BinaryWriter(fs)
Dim strOutput As String = ""
w.BaseStream.Seek(0, SeekOrigin.End)'将文件指针设置到文件结尾
' 因为正在写的信息可能不适合于所选择用于写入的特定样式
' (例如,单词“Hello”作为整数?),所以我们必须捕捉写入
' 错误,并通知用户未能执行该任务
Try
Select Case selection
Case "Boolean"
Dim b As Boolean = Convert.ToBoolean(output)
w.Write( b )
Case "String"
Dim s As String = Convert.ToString(output)
w.Write( s )
Case "Integer"
Dim i As Int32 = Convert.ToInt32(output)
w.Write(i)
End Select
Catch E As Exception
' 让用户知道未能写入该信息
strOutput = "写异常:"chr(13)_
"无法以所请求的格式写入要写入的信息 。"_
chr(13)"请输入尝试写入的数据类型的有效值"
End Try
fs.Close()
return strOutput
End Function
End Class
Sub btnAction_Click(src As Object, E As EventArgs)
Dim s As String = ""
' 写出文件
s = TestBinary.WriteFile(txtInput.Text, lstDataIn.SelectedItem.Text)
If s = "" Then
Try
' 读回信息,显示信息...
txtOutput.Text = TestBinary.ReadFile(lstDataIn.SelectedItem.Text)
Catch Exc As Exception
' 让用户知道未能写入信息
s = "读异常:"chr(13)_
"无法以所请求的格式读取要写入的信息 。"_
chr(13)"请输入尝试写入的数据类型的有效值"
End Try
Else
txtOutput.Text = s
End If
End Sub
/script
html
head
link rel="stylesheet" href="https://www.04ip.com/post/intro.css"
/head
body style="background-color:f6e4c6"
form method=post runat="server"
p
table
tr
tdb
下面的示例使用 BinaryWriter 对象创建一个二进制文件,然后使用 BinaryReader 读取该信息 。/b可以选择不同的对象来将所需的信息写入文件
此演示用于强调您需要知道如何读取已写入的二进制文件 。一旦以某种格式写入数据,就只能以该格式读取该信息 。但是,可以将多种不同的数据类型写入文件 。在此演示中,输入任意字符串并将它们作为字符串读取,对于整型,仅输入整型数值项(试试浮点数字,然后看看会发生什么...);对于布尔型项 , 仅输入词“false”和“true” 。
p
hr
/td
/tr
/table
asp:Table id="basetable" runat="server" border="0" cellspacing="0" cellpadding="5"
asp:tablerow
asp:tablecell verticalalign="top"
请选择要保存到二进制文件的数据类型...
/asp:tablecell
asp:tablecell verticalalign="top"
asp:listbox id="lstDataIn" runat="server"
asp:listitemBoolean/asp:listitem
asp:listitem selected="true"String/asp:listitem
asp:listitemInteger/asp:listitem
/asp:listbox
/asp:tablecell
asp:tablecell verticalalign="top"
asp:button id="btnAction" onclick="btnAction_Click" Text="写入/读取文件" runat="server"/
/asp:tablecell
/asp:tablerow
【vb.net读写opc vb读写文件】vb.net读写opc的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于vb读写文件、vb.net读写opc的信息别忘了在本站进行查找喔 。

    推荐阅读