
源码也叫源代码、源程序,即编程者(程序员)编写的程序代码,一般都是用高级语言(basic、c等)构成。
源码的作用是程序员不必直接编写晦涩的机器语言,而以容易明白的高级语言代替,方便了程序的理解和修改。
源码经过编译,转换为微机可以执行的机器代码,即可以提高程序的运行效率,又可以保护编程者的版权利益!
得说明是什么型号的PLC啊,串口还是网口,VB6还是VBNET?
算了,写段代码,VBNET与Q系列以太网通讯的:
Imports SystemNetImports SystemRuntimeInteropServices
Public Class Form1
Dim Handle1 As Int32
Dim EntLink1 As Boolean
Dim ScanCount1 As Long
Dim PLC As New EntQsPlc_AscPlcClient'EntQsPlc_ASCDLL是Q系列以太网通讯组件
Public Declare Function timeGetTime Lib "winmmdll" () As UInt32
Private Sub Form1_Load(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles MyBaseLoad
MeCenterToScreen()
cmbReadMryItemsClear()
cmbReadMryItemsAdd("X")
cmbReadMryItemsAdd("Y")
cmbReadMryItemsAdd("M")
cmbReadMryItemsAdd("D")
cmbReadMryItemsAdd("R")
cmbReadMryItemsAdd("Z")
'
cmbWriteMryItemsClear()
cmbWriteMryItemsAdd("X")
cmbWriteMryItemsAdd("Y")
cmbWriteMryItemsAdd("M")
cmbWriteMryItemsAdd("D")
cmbWriteMryItemsAdd("R")
cmbWriteMryItemsAdd("Z")
'
cmbBitMryItemsClear()
cmbBitMryItemsAdd("X")
cmbBitMryItemsAdd("Y")
cmbBitMryItemsAdd("M")
'
cmbReadTypeItemsClear()
cmbReadTypeItemsAdd("INT16")
cmbReadTypeItemsAdd("UINT16")
cmbReadTypeItemsAdd("DINT32")
cmbReadTypeItemsAdd("HEX32")
cmbReadTypeItemsAdd("REAL32")
cmbReadTypeItemsAdd("BIN16")
'
cmbWriteTypeItemsClear()
cmbWriteTypeItemsAdd("INT16")
cmbWriteTypeItemsAdd("UINT16")
cmbWriteTypeItemsAdd("DINT32")
cmbWriteTypeItemsAdd("HEX32")
cmbWriteTypeItemsAdd("REAL32")
cmbWriteTypeItemsAdd("BIN16")
cmbReadMrySelectedIndex = 3
cmbWriteMrySelectedIndex = 3
cmbBitMrySelectedIndex = 2
cmbReadTypeSelectedIndex = 0
cmbWriteTypeSelectedIndex = 0
lstReadItemsClear()
txtWriteText = ""
'
cmbCmdTypeSelectedIndex = 0
End Sub
Private Sub butLink_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butLinkClick
Dim re As Short
Dim restr As String = ""
re = PLCEntLink(Trim(txtLocalIPText), Val(txtLocalPortText), Trim(txtRemoteIPText), Val(txtRemotePortText), "DEMO", Handle1, 1000, CBool(cmbCmdTypeSelectedIndex))
txtReLinkText = reToString
If re = 0 Then
EntLink1 = True
MsgBox("PLC联接成功! ")
Else
EntLink1 = False
MsgBox("PLC联接失败: " & restr)
End If
End Sub
Private Sub butClose_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butCloseClick
Dim re As Short
If Not EntLink1 Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
re = PLCDeLink(Handle1)
txtReCloseText = reToString
End Sub
Private Sub butRead_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butReadClick
Dim re As Short
Dim i As Short
Dim RD() As Object
ReDim RD(Val(txtReadCntText - 1))
If Not EntLink1 Then
MsgBox("还未与PLC建立联接!")
' Exit Sub
End If
Dim mry As EntQsPlc_AscPlcClientPlcMemory = cmbReadMrySelectedIndex + 1
Dim typ As EntQsPlc_AscPlcClientDataType = cmbReadTypeSelectedIndex + 1
re = PLCCmdRead(Handle1, mry, typ, CInt(txtReadAddText), CUShort(txtReadCntText), RD)
txtReReadText = reToString
lstReadItemsClear()
For i = 0 To UBound(RD) Step 1
If Not IsNothing(RD(i)) Then lstReadItemsAdd(RD(i))
Next i
If re <> 0 Then
Timer1Enabled = False
butScanText = "Cycle R/W"
End If
End Sub
Private Sub butWrite_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butWriteClick
Dim re As Short
Dim i As Short
Dim temp() As String
Dim WD() As Object
If Not EntLink1 Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
ReDim WD(Val(txtWriteCntText) - 1)
temp = Split(txtWriteText, vbCrLf)
For i = 0 To UBound(WD) Step 1
If i > UBound(temp) Then
WD(i) = 0
Else
WD(i) = Trim(temp(i))
End If
Next i
Dim mry As EntQsPlc_AscPlcClientPlcMemory = cmbWriteMrySelectedIndex + 1
Dim typ As EntQsPlc_AscPlcClientDataType = cmbWriteTypeSelectedIndex + 1
re = PLCCmdWrite(Handle1, mry, typ, CInt(txtWriteAddText), CUShort(txtWriteCntText), WD)
txtReWriteText = reToString
If re <> 0 Then
Timer1Enabled = False
butScanText = "Cycle R/W"
End If
End Sub
Private Sub butScan_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butScanClick
If Not EntLink1 Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
Timer1Enabled = Not Timer1Enabled
If Timer1Enabled Then
ScanCount1 = 0
butScanText = "Stop R/W"
Else
butScanText = "Cycle R/W"
End If
End Sub
Private Sub Timer1_Tick(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles Timer1Tick
Timer1Enabled = False
Dim tim As Integer = timeGetTime
If Not EntLink1 Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
'
Call butRead_Click(Nothing, Nothing)
Call butWrite_Click(Nothing, Nothing)
'
If (Val(txtReReadText) < 0) Or (Val(txtReWriteText) < 0) Then
butScanText = "Cycle R/W"
Exit Sub
Else
ScanCount1 += 1
txtScanCntText = ScanCount1
txtScanPrdText = (timeGetTime - tim) & "ms"
End If
Timer1Enabled = True
End Sub
Private Sub butBitTest_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butBitTestClick
If Not EntLink1 Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
Dim rd As Boolean
Dim re As Short
Dim mry As EntQsPlc_AscPlcClientPlcMemory = cmbBitMrySelectedIndex + 1
re = PLCBit_Test(Handle1, mry, CUShort(txtBitAddText), rd)
txtBitTestText = rd
txtReBitText = re
End Sub
Private Sub butBitSet_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butBitSetClick
If Not EntLink1 Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
Dim re As Short
re = PLCBit_Set(Handle1, cmbBitMrySelectedIndex + 1, Val(txtBitAddText))
txtReBitText = re
End Sub
Private Sub butBitRst_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butBitRstClick
If Not EntLink1 Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
Dim re As Short
re = PLCBit_Reset(Handle1, cmbBitMrySelectedIndex + 1, Val(txtBitAddText))
txtReBitText = re
End Sub
End Class
首先,"兼容"有两重含义-二进制文件兼容和源代码兼容。gambas与vb在这两个层面上都不兼容。
Binary compatible(二进制文件兼容)指一个系统上编译的二进制可执行文件是否能在另一个系统上运行。Gambas是Linux等类UNIX系统的开发环境,编译出来的可执行文件自然只能运行在Linux等类UNIX *** 作系统中。虽然有报道有人用cygwin编译windows版的gambas,但是在cygwin/windows环境下gambas只能编译命令行程序,没有图形工具。
Source compatible(源码兼容)指同一份程序源代码可以在不同 *** 作系统成功无误编译成二进制可执行文件。gambas与visual basic 6的语法非常近似,但是仍然是不同的(比如数组x的第9个元素在gambas中为x[9],而在VB中为x(9);关键字end的意思也有差别),见官方维基的解释(gambaswikiorg/wiki/doc/diffvb)。因此,Gambas能编译成功的程序代码拿到windows的VB上一般要经过一些修改。
Gambas (Gambas Almost Means BASic),项目的初衷是创造一门与Basic(尤其是Visual Basic)近似的语言,而不是对VB原原本本的克隆。
最后,Gambas是一门比较年轻的语言,用户较少,连一般的Linux发行版都默认不安装,在一台Linux上编译好的程序在另一台没有gambas的Linux上运行是还需要额外安装运行时环境,相应程序移植到Windows下就更困难了。
源程序也叫源码,就是最开始编写的程序,计算机并不能识别,需要经过编译生成目标程序。
目标程序是能够被计算机识别执行的,比如我们在网上下载的软件,例如QQ,迅雷,这一类软件都是目标程序,都是经过编译的,商业公司一般不会发布源码,源码涉及到商业机密。
大家可以看看下面对两者的区分:
1 源程序,是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。通常由高级语言编写。源程序可以是以书籍或者磁带或者其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。一般用高级语言编写的程序称为“源程序”。
2 目标程序,又称为“目的程序”,为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
解析:
BASIC是Beginner's All-purpose Symbolic Instruction Code的缩写。意即初学者通用符号指令代码。它是一种国际通用的计算机高级语言。一般认为它是从FORTRAN中提炼、简化而来。因此简单易学,BASIC入门了,再学其它高级语言也就不难了。
2 BASIC语言的版本
电脑语言一般都有版本序列。BASIC语言也经历了不断的发展与改进,形成了不同环境下的不同版本。如BASIC、BASICA、F-BASIC、H-BASIC、Q-BASIC等等。但一般来说都大同小异、基本的东西不变、较高版本兼容较低版本。所以需恐慌与诧异。让我们从最基本的也就是BASIC来学起,先入门,有兴趣的同学,就可以通过自学深入和提高。
3 BASIC语言的特点
(1)简单易学。基本BASIC的语句一共只有17种,且使用准英语或者叫类英语,表达式与运算符号也与数学中使用的差不多。
(2)会话功能。BASIC是高级语言,具有很强的会话功能。语句、表达式及运行到某句出错时,电脑会进行人机对话,及时给出提示等。因此可以边做边改。直至正确与满意为止,这一点对初学者十分方便。
(3)环境特点。BASIC程序的运行分解释型与编译型两种。一般在学习与编制程序时使用解释型环境。也就是说要在DOS下先运 行BASICEXE文件,进入BASIC的解释环境状态(其提示符是OK),编写程序所形成的文件其扩展名约定为BAS。这就叫BASIC的源程序。当源程序调试好了,反复运行都满意,可以用BASIC的编译工具软件把它编译成扩展名为EXE的文件便能直接在DOS下运行。有关BASIC的启动知识
C语言是目前世界上流行、使用最广泛的高级程序设计语言。
C语言对 *** 作系统和系统使用程序以及需要对硬件进行 *** 作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。
常用的编译软件有Microsoft Visual C++,Borland C++,Wat C++ ,Borland C++, Borland C++ Builder,Borland C++ 31 for DOS,Wat C++ 110 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 31,Microsoft C,High C,等等
C语言的发展历史
C语言的发展颇为有趣。它的原型ALGOL 60语言。
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX *** 作系统。
而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的DMRITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。
为了使UNIX *** 作系统推广,1977年Dennis MRitchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian WKernighian和Dennis MRitchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。
C语言的特点
1 简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行 *** 作, 而这三者是计算机最基本的工作单元。
2 运算符丰富
C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3 数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
4 C是结构式语言
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5 C语法限制不太严格、程序设计自由度大
一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。
6 C语言允许直接访问物理地址,可以直接对硬件进行 *** 作
因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行 *** 作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7 C语言程序生成代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8 C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种 *** 作系统, 如DOS、UNIX,也适用于多种机型。
以上就是关于什么叫源代码,源代码有什么作用全部的内容,包括:什么叫源代码,源代码有什么作用、能给我发个VB与三菱PLC通讯的源代码实例吗,非常感谢啊、gambas编写的basic程序是否能兼容windows下的vb等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)