重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
运动控制卡与PLC都是控制器,主要负责工业自动化系统中运动轴控制、输入输出信号控制;
创新互联专注于米东网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供米东营销型网站建设,米东网站制作、米东网页设计、米东网站官网定制、微信小程序服务,打造米东网络公司原创品牌,更为您提供米东网站排名全网营销落地服务。
运动控制卡:基于PC界面,由于PC机的强大功能,因此与其一起组成的运动控制器功能最强,但其工作稳定性、可靠性较差。运动控制卡通过PCI插槽将控制卡插在PC的主机上;利用高级编程语言C++、C#、VB、VB.NET、labview等编程语言进行开发;编程中使用运动控制卡厂商提供的控制卡API接口函数,来实现对控制卡资源的使用;运动控制卡通过发送脉冲的方式控制伺服或步进驱动器来控制伺服电机或步进电机、通过读取输入信号、控制输出信号来实现对继电器、传感器、气缸等IO的控制;运动控制卡主要的优势在于利用PC强大的功能,比如CAD功能、机器视觉功能、软件高级编程等;利用FPGA+DSP / ARM + DSP芯片的功能实现高精度的运动控制(多轴直线、圆弧插补等,运动跟随,PWM控制等)。
PLC可编程逻辑控制器:主要功能是对开关量进行逻辑控制,并有简单的运动控制(直线轨迹控制)、运算、数据处理等功能,通常采用触摸屏作人机界面。具有工作可靠,编程简单等优点,但其运动控制功能相对简单。PLC的应用过程中主要通过PLC+HMI,这就导致可视化界面受到极大地限制,实际应用过程中最大的问题就是不能实现导图功能;现在由于机器视觉大力的发展与应用,PLC与机器视觉的结合难度很大;目前有部分厂商给PLC提供一种机器视觉方案,独立的PC机处理视觉部分,将处理的结果发送给PLC,PLC来应用所接收数据进行操作。这种方式提高了开发成本,一套控制系统需要两套软件来执行。
这是典型对.net构架不理解造成的!
只要是.net编程,一定使用的是.net类库,必须是同运行版本的.net支持方可运行。而所谓的vb.net只是说编程的语言层使用的是vb语言而已。该语言在.net构架下被编译成为IL语言(MSIL,严格说来是IL的一个子集)。而上层的语言只是产生软件时所使用的一个不同语言规则而已,与IL已经没有任何相关性了。上层语言无论是C#还是VB,甚至是Java(J#)均只适应编程人员的一个策略,与整个构造没有多大的相关性。
.net的最终目的就是让不同的语言编程人员能协同工作,那么语言在其中的区别没有多大了,所有的运行核心都是由.net完成的,没有必须依赖于.net。这是没有任何疑问的。
vb.net就是.net,只是表示用VB语言人的称呼,用C#的则称其为C#.net,但不管是哪种,它是无法脱离.net的。
提供一个VB.NET与OMRON以太网通讯的代码,是我项目里面复制出来的:
Dim Handle1 As Int32 'PLC的连接句柄
Dim EntLink As Boolean '连接标志
Dim PLC As New FinsTcp.PlcClient '引用OMRON的通讯组件
Private Sub butLink_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butLink.Click
Dim re As Short
Dim restr As String = ""
re = PLC.EntLink(Trim(txtLocalIP.Text), Val(txtLocalPort.Text), Trim(txtRemoteIP.Text), Val(txtRemotePort.Text), "DEMO", Handle1)
txtReLink.Text = re.ToString
If re = 0 Then
EntLink = True
MsgBox("PLC联接成功! ")
Else
EntLink = False
MsgBox("PLC联接失败: " restr)
End If
End Sub
Private Sub butClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butClose.Click
Dim re As Short
EntLink = False
re = PLC.DeLink(Handle1)
txtReClose.Text = re.ToString
End Sub
Private Sub butRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butRead.Click
Dim re As Short
Dim i As Short
Dim RD() As Object
ReDim RD(Val(txtReadCnt.Text - 1))
If Not EntLink Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
Dim mry As FinsTcp.PlcClient.PlcMemory = cmbReadMry.SelectedIndex + 1
Dim typ As FinsTcp.PlcClient.DataType = cmbReadType.SelectedIndex + 1
re = PLC.CmdRead(Handle1, mry, typ, CUShort(Val(txtReadAdd.Text)), CUShort(Val(txtReadCnt.Text)), RD)
txtReRead.Text = re.ToString
lstRead.Items.Clear()
For i = 0 To UBound(RD) Step 1
If Not IsNothing(RD(i)) Then lstRead.Items.Add(RD(i))
Next i
If re 0 Then
Timer1.Enabled = False
butScan.Text = "Cycle R/W"
End If
End Sub
Private Sub butWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butWrite.Click
Dim re As Short
Dim i As Short
Dim temp() As String
Dim WD() As Object
If Not EntLink Then
MsgBox("还未与PLC建立联接!")
Exit Sub
End If
ReDim WD(Val(txtWriteCnt.Text) - 1)
temp = Split(txtWrite.Text, 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 FinsTcp.PlcClient.PlcMemory = cmbWriteMry.SelectedIndex + 1
Dim typ As FinsTcp.PlcClient.DataType = cmbWriteType.SelectedIndex + 1
re = PLC.CmdWrite(Handle1, mry, typ, CUShort(Val(txtWriteAdd.Text)), CUShort(Val(txtWriteCnt.Text)), WD)
txtReWrite.Text = re.ToString
If re 0 Then
Timer1.Enabled = False
butScan.Text = "Cycle R/W"
End If
End Sub