今天给各位分享上位机软件开发案例的知识,其中也会对上位机软件开发是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!1、上位机开发2、利用电脑做上位机开发一个软件,用单片机做下位
今天给各位分享上位机软件开发案例的知识,其中也会对上位机软件开发是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
- 1、上位机开发
- 2、利用电脑做上位机开发一个软件,用单片机做下位机。在上位机上点击软件上的按钮能使单片机输出一路I/O口
- 3、能给我发个VB与三菱PLC通讯的源代码实例吗,非常感谢啊
- 4、现在在开发一个上位机应用程序,使用vs2008中的vb.net开发基于wince的应用程序,实现对串口采集过来的数据
- 5、如何用c语言开发自己的上位机软件
- 6、谁帮我推荐几款三轴运动控制器,可以示教编程的
就目前就业市场来看,不管上位机,还是下位机,应用程序领域的人才需求总是最大的。
做测试软件其实不一定需要用 c#,假如你对c/c++开发比较熟,那直接用 MFC 等写些
对话框应用就好了,测试软件不至于会太复杂。另外假如 c/c++ 通了,C#之类的不要
太简单。
对于做工作来说的话,除非你已经走在自己已经认准的那条道上了。否则你还是兵来将
挡,水来土掩的好。任何时候,有任何需要,你凭借自己的基础稍做学习都能立马上手。
还有一点,不是说你今天或者这几个月做了 c# ,后面几年时间你就必须得用它来吃饭了。
做c#的过程也许只是你长期职业追求中的一个插曲而已,对于增加知识面也有好处。
主要涉及到单片机基础知识,重点是串口通信,上位机可以考虑vc和.net,这两种都可以。.net使用c#语言,感觉比较好上手,我也可以给你点视频教程,一学就会。
得说明是什么型号的PLC啊,串口还是网口,VB6还是VB.NET?
算了,写段代码,VB.NET与Q系列以太网通讯的:
Imports?System.Net
Imports?System.Runtime.InteropServices
Public?Class?Form1
????Dim?Handle1?As?Int32
????Dim?EntLink1?As?Boolean
????Dim?ScanCount1?As?Long
????Dim?PLC?As?New?EntQsPlc_Asc.PlcClient’EntQsPlc_ASC.DLL是Q系列以太网通讯组件
????Public?Declare?Function?timeGetTime?Lib?”winmm.dll”?()?As?UInt32
????Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
????????Me.CenterToScreen()
????????cmbReadMry.Items.Clear()
????????cmbReadMry.Items.Add(“X”)
????????cmbReadMry.Items.Add(“Y”)
????????cmbReadMry.Items.Add(“M”)
????????cmbReadMry.Items.Add(“D”)
????????cmbReadMry.Items.Add(“R”)
????????cmbReadMry.Items.Add(“Z”)
????????’
????????cmbWriteMry.Items.Clear()
????????cmbWriteMry.Items.Add(“X”)
????????cmbWriteMry.Items.Add(“Y”)
????????cmbWriteMry.Items.Add(“M”)
????????cmbWriteMry.Items.Add(“D”)
????????cmbWriteMry.Items.Add(“R”)
????????cmbWriteMry.Items.Add(“Z”)
????????’
????????cmbBitMry.Items.Clear()
????????cmbBitMry.Items.Add(“X”)
????????cmbBitMry.Items.Add(“Y”)
????????cmbBitMry.Items.Add(“M”)
????????’
????????cmbReadType.Items.Clear()
????????cmbReadType.Items.Add(“INT16”)
????????cmbReadType.Items.Add(“UINT16”)
????????cmbReadType.Items.Add(“DINT32”)
????????cmbReadType.Items.Add(“HEX32”)
????????cmbReadType.Items.Add(“REAL32”)
????????cmbReadType.Items.Add(“BIN16”)
????????’
????????cmbWriteType.Items.Clear()
????????cmbWriteType.Items.Add(“INT16”)
????????cmbWriteType.Items.Add(“UINT16”)
????????cmbWriteType.Items.Add(“DINT32”)
????????cmbWriteType.Items.Add(“HEX32”)
????????cmbWriteType.Items.Add(“REAL32”)
????????cmbWriteType.Items.Add(“BIN16”)
????????cmbReadMry.SelectedIndex?=?3
????????cmbWriteMry.SelectedIndex?=?3
????????cmbBitMry.SelectedIndex?=?2
????????cmbReadType.SelectedIndex?=?0
????????cmbWriteType.SelectedIndex?=?0
????????lstRead.Items.Clear()
????????txtWrite.Text?=?””
????????’
????????cmbCmdType.SelectedIndex?=?0
????End?Sub
????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,?1000,?CBool(cmbCmdType.SelectedIndex))
????????txtReLink.Text?=?re.ToString
????????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?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butClose.Click
????????Dim?re?As?Short
????????If?Not?EntLink1?Then
????????????MsgBox(“还未与PLC建立联接!”)
????????????Exit?Sub
????????End?If
????????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?EntLink1?Then
????????????MsgBox(“还未与PLC建立联接!”)
????????????’?Exit?Sub
????????End?If
????????Dim?mry?As?EntQsPlc_Asc.PlcClient.PlcMemory?=?cmbReadMry.SelectedIndex?+?1
????????Dim?typ?As?EntQsPlc_Asc.PlcClient.DataType?=?cmbReadType.SelectedIndex?+?1
????????re?=?PLC.CmdRead(Handle1,?mry,?typ,?CInt(txtReadAdd.Text),?CUShort(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?EntLink1?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?EntQsPlc_Asc.PlcClient.PlcMemory?=?cmbWriteMry.SelectedIndex?+?1
????????Dim?typ?As?EntQsPlc_Asc.PlcClient.DataType?=?cmbWriteType.SelectedIndex?+?1
????????re?=?PLC.CmdWrite(Handle1,?mry,?typ,?CInt(txtWriteAdd.Text),?CUShort(txtWriteCnt.Text),?WD)
????????txtReWrite.Text?=?re.ToString
????????If?re??0?Then
????????????Timer1.Enabled?=?False
????????????butScan.Text?=?”Cycle?R/W”
????????End?If
????End?Sub
????
????
????Private?Sub?butScan_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butScan.Click
????????If?Not?EntLink1?Then
????????????MsgBox(“还未与PLC建立联接!”)
????????????Exit?Sub
????????End?If
????????Timer1.Enabled?=?Not?Timer1.Enabled
????????If?Timer1.Enabled?Then
????????????ScanCount1?=?0
????????????butScan.Text?=?”Stop?R/W”
????????Else
????????????butScan.Text?=?”Cycle?R/W”
????????End?If
????End?Sub
????Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
????????Timer1.Enabled?=?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(txtReRead.Text)??0)?Or?(Val(txtReWrite.Text)??0)?Then
????????????butScan.Text?=?”Cycle?R/W”
????????????Exit?Sub
????????Else
????????????ScanCount1?+=?1
????????????txtScanCnt.Text?=?ScanCount1
????????????txtScanPrd.Text?=?(timeGetTime?-?tim)??”ms”
????????End?If
????????Timer1.Enabled?=?True
????End?Sub
????Private?Sub?butBitTest_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitTest.Click
????????If?Not?EntLink1?Then
????????????MsgBox(“还未与PLC建立联接!”)
????????????Exit?Sub
????????End?If
????????Dim?rd?As?Boolean
????????Dim?re?As?Short
????????Dim?mry?As?EntQsPlc_Asc.PlcClient.PlcMemory?=?cmbBitMry.SelectedIndex?+?1
????????re?=?PLC.Bit_Test(Handle1,?mry,?CUShort(txtBitAdd.Text),?rd)
????????txtBitTest.Text?=?rd
????????txtReBit.Text?=?re
????End?Sub
????Private?Sub?butBitSet_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitSet.Click
????????If?Not?EntLink1?Then
????????????MsgBox(“还未与PLC建立联接!”)
????????????Exit?Sub
????????End?If
????????Dim?re?As?Short
????????re?=?PLC.Bit_Set(Handle1,?cmbBitMry.SelectedIndex?+?1,?Val(txtBitAdd.Text))
????????txtReBit.Text?=?re
????End?Sub
????Private?Sub?butBitRst_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitRst.Click
????????If?Not?EntLink1?Then
????????????MsgBox(“还未与PLC建立联接!”)
????????????Exit?Sub
????????End?If
????????Dim?re?As?Short
????????re?=?PLC.Bit_Reset(Handle1,?cmbBitMry.SelectedIndex?+?1,?Val(txtBitAdd.Text))
????????txtReBit.Text?=?re
????End?Sub
End?Class
这是我配置vs2005的模拟器,你参考一下吧。
1. 在VS2005里新建项目中时,选择创建Platform builder for CE 6.0的OS Design,新项目可以自
命名,这里命名为“MyEmulator”。
2. 创建MyEmulator的向导中,BSP一定要选择“Device Emulator: ARMV4I”,下一步;
3. 模板(Design Templates)选择“PDA Device”,下一步;
4. 选择“Mobile Handheld”,下一步;
5. 应用程序(Application Media)就随自己的需要选择,下一步;
6. 网络和通信(Networking Communications)在此只选择“Local Area Network(LAN)”,下一步;
7. 选择完成;
8. 选择Acknowledge;
到此工程建完;
四.添加组件(可以根据需要添加,这里主要添加汉字相关的组件)
(1) 添加汉字字库(这里要记得加入,很多人这里没有加入,就出现汉字只看到方框的现象):
1. 在Catalog View添加“Core OS”–“CEBASE”–“International”–“Locale Specific support”–“Chinese (Simplified)”–“Fonts”–“SimSun NSimSum(choose 1)”–“SimSun NSimSun”或者“SimSum NSimSun (Subset 2_50)”;
2. 在Catalog View添加“Core OS”–“CEBASE”–“International”–“Locale Specific support”–“Chinese (Simplified)”–“GB18030 Data Vonverter”和“Monotype Imaging AC3 Font Compression”;
(2)添加中文输入法:
在Catalog View添加“Core OS”–“CEBASE”–“International”–“Locale Specific support”–“Chinese (Simplified)”–“Input Method Editor”–“MSPY 3.0 for Windows Embedded CE”;
(3) VS2005中菜单“项目”–“MyEmulator(项目名)属性”,配置选择“所有配置”,配置属性–“Build Options”,在“Build Options”中去掉“Enable KITL (no IMGNOKITL=1)” (这里如果加入了KITL功能的话,可能在模拟器运行的时候,会一直是黑屏的);
(4) “Locale”中,Locales先Clear All,然后选择“中文(中国)”,Default local选择“中文(中国)”;
(5) 运行VS2005菜单“生成”–“生成MyEmulator”;
五.构建SDK:
1. 运行VS2005菜单“项目”–“Add New SDK…”,在SDK属性页中填写必要的信息,属性“Emulation”中Configuration 选择Debug,可以设置模拟器的显示屏大小及色深,还有内存大小,在此设置为240 x 320,16色深,128M内存,然后“应用”,“确定”。。
2. 然后运行VS2005菜单“生成”–“Build All SDK…”,顺利的话,就会在%WINCEROOTOSDesigns MyEmulatorMyEmulatorSDKsSDK1MSI下会有MyEmulator.msi;
六.配置VS2005:
1、先安装生成好的MyEmulator.msi。运行Visual Studio 2005,选择菜单“工具->选项”,打开选项设置对话框,从左边的树型列表中选择“设备工具->设备”,右边的下拉列表框拉到底可以看到 “MyEmulator”,这就是刚刚生成的那个模拟器。下面的设备列表里有两项,双击MyEmulator,设定传输为DMA传输,再点击“仿真器选 项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。
2、用VS2005新建一个智能设备项目,向导选择平台时,先删除Pocket PC 2003,选择MyEmulator,完成。然后按F5运行程序,顺利的话定制的模拟器就会出来了(不过这个过程比较慢,需要等待一段时间)。
一般开发上位机软件都是带图形界面的。C也能做出图形界面的软件,但是开发周期太长也不实用。所以最好还是需要会一些其他语言,例如C++,C#,Java这些做图形界面开发周期短的语言。既然会C,那么学习其他语言也只是一个熟悉语法的过程。所以很快就能上手,因为语言都是相通的嘛。可以开阔自己的视野去学习一下新的语言。不是说只会C有什么弊端,只是想说会的多才会知道语言之间的优劣。
EMAC200独立式可编程运动控制器——4轴
(特点:运行速度最快的运动控制、功能设置简介通过程序内部相当可以轻松引导客户完成硬件配置)(今年来在高校运用的量增加,所以针对实验程序的案例比较多,完整系统运用程序因为受到此控制器程序保护功能因素,所以相对要少)
ACR9000独立式可编程运动控制器——2、4、6、8轴
(特点:功能最全面的运动控制、几乎涵盖了运动控制运用中的所以应用能力)(在工厂使用的比较多,案例程序比较完整)
PMAC2可编程运动控制卡,需要搭载工控机运行
(特点:美国第一款进入中国的运动控制卡,功能强大但程序设计复杂)(这款控制卡运用比较早,案例程序繁杂)
独立式可编程运动控制器是已经封装好了外壳,在内部提升了防护等级,如抗干扰、振动、防尘灯,一般单台规格为2、4、6、8轴,需要更多的轴是通过总线外扩充一般扩展轴速也都能达到256轴以上。可以脱离电脑通自己的CPU独立运行,同时可以考虑加装触摸屏来监视,设备运行情况。
运动控制卡(板块型)通常通过PCI插槽连接到电脑上,工厂一般用工控机来和运动控制卡组合使用,因为工控机可以提供多个插槽给运动控制卡以便扩展轴数。
上位机软件开发案例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于上位机软件开发是什么意思、上位机软件开发案例的信息别忘了在本站进行查找喔。
如若转载,请注明出处:http://yiliaowu.com/5131.html