您现在所在的是:

电脑编程

回帖:13个,阅读:5891 [上一页] [1] [2] [下一页]
1073
阿贝
文章数:44
年度积分:50
历史总积分:1073
注册时间:2004/6/29
发站内信
发表于:2004/7/12 12:23:00
#10楼
自己做比较好,很好的实践机会。祝你成功。
994
64865836
文章数:19
年度积分:50
历史总积分:994
注册时间:2004/7/10
发站内信
发表于:2004/7/12 22:33:00
#11楼
首先用一种语言做连接
首先用一种语言做连接,如:VB 。VC ,CB ,DELIPHI 等实现硬件和软件的连接 。然后把数据采集上来后,存在数据库中,如果是初学建议用ACCESS 数据库就够用了 ,如果想导入到EXCEL 中是很方便的事情了。如下附送几句VB 代码供参考 ,请不要见笑,
Dim xlApp As Excel.Application
   Dim xlBook As Excel.Workbook
   Dim xlSheet As Excel.Worksheet
   Dim row_c  As Integer
   Dim col_c As Integer
   Dim i, j As Integer
   Set xlApp = CreateObject("Excel.Application")
   Set xlBook = xlApp.Workbooks.Open("d:\database\proli.xls")
   Set xlSheet = xlBook.Worksheets(1)
     If S_rs.RecordCount < 1 Then
    MsgBox ("no record")
     f_cap = "系统错误!"
     f_cap1 = " 没有数据记录"
     msg1.Show 1, ProList
    Exit Sub
    End If
     S_rs.MoveLast '.MoveLast
     row_c = S_rs.RecordCount
     col_c = S_rs.Fields.Count
     ReDim Fieldlen(col_c)
     S_rs.MoveFirst
     For i = 1 To row_c
     For j = 1 To col_c
     xlSheet.Cells(i + 2, j).Value = S_rs.Fields(j - 1)
     Next j
      If row_c <> 1 Then
      If Not S_rs.EOF Then S_rs.MoveNext
      End If
      Next i
      xlBook.PrintOut     '打印预览
      xlBook.Close SaveChanges:=False

基本上如上几句话就完成了数据库数据导入到EXCEL中存储并打印。

如有何疑问:MSN:renjianwin@hotmail.com
http://www.jetter.cn

上海杰顿自动化科技有限公司是一家专业化科技公司,在工业自动化控制领域从事工程设计、产品研发、技术服务和工业自动化产品销售等业务。
   公司先后为能源化工、冶金机械、陶瓷水泥、水处理、造纸纺织等行业的工程控制项目进行设计和产品选型。特别是工业炉控制领域,公司为多家客户配套设计了许多先进的产品,产品已经发展到国外。公司自主开发的工控软件平台,采用了嵌入式设计方法,使系统更加稳定可靠。并且在软件平台上,采用了 Embedded XP技术,结合公司十多年来的工控软件开发技术,开发出了具有自主知识产权的 JETTER 触摸屏。该产品能同时和多种国内外工控产品进行现场总线连接。使产品适应性更广、功能更加强大、性能更稳定。同时可以根据客户的要求任意定制,满足了各种场合的应用和需求。
1187
xyyichejian
文章数:52
年度积分:50
历史总积分:1187
注册时间:2004/6/16
发站内信
发表于:2004/7/13 7:56:00
#12楼
右键、部件、控件、micosoft comm control 6.0即可。
1187
xyyichejian
文章数:52
年度积分:50
历史总积分:1187
注册时间:2004/6/16
发站内信
发表于:2004/7/16 9:15:00
#13楼
现有一VBA源码程序供你参考。
现有一VBA源程序供你参考。下面是其用户程序的一部分,如果需要请给我联系。
Option Explicit
Dim TXOK As Boolean  
Dim ARR() As Byte  
Dim CRCCAL, CRCR As Long
Dim Dummy, SBCS, IBYTE  As Integer
Dim BUFFER, OUTBUF As Variant

Dim A%, B%, C%, D%, E!, F!  
Private Sub timer1_Timer()  
Dim TXI, TXJ, ZH As Integer
Dim FC(4) As Byte
Timer1.Enabled = False
If Minute(Now()) = 0 And BZ = False Then
   BZ = True
   SJ_CC
End If
If Minute(Now()) <> 0 Then
 BZ = False
End If
With Sheets("CJ")
For TXJ = 5 To 27
 ZH = 0
 Select Case TXJ
 Case 5 To 12
  IBYTE = 37
  ZH = Val(.Cells(TXJ, 4).Value)
 Case 16 To 18
  IBYTE = 37
  ZH = Val(.Cells(TXJ, 4).Value)
 Case 22 To 23
  IBYTE = 17
  ZH = Val(.Cells(TXJ, 4).Value)
 Case 27
  IBYTE = 17
  ZH = Val(.Cells(TXJ, 4).Value)
 End Select
 If ZH <> 0 Then
   GoSub OK
 End If
Next TXJ
End With
Timer1.Enabled = False
Timer1.Interval = 500
Timer1.Enabled = True
Exit Sub

OK:

With Sheets("CJ")
FC(0) = ZH
FC(1) = 3
CRCR = 65535
For TXI = 0 To 1
 CRCCAL = FC(TXI) Xor CRCR And 255
 CRCCAL = CRC(CRCCAL)
 CRCR = (CRCR And 65280) / 256
 CRCR = CRCR Xor CRCCAL
Next TXI
FC(2) = (CRCR And 255)
FC(3) = (CRCR And 65280) / 256
OUTBUF = FC
SBCS = 0
TXOK = False
MSComm1.InputLen = 0      
MSComm1.RThreshold = IBYTE  
MSComm1.InBufferCount = 0  

MSComm1.NullDiscard = False  

MSComm1.Output = OUTBUF    

Timer2.Enabled = False
Timer2.Interval = 500
Timer2.Enabled = True
Do
Dummy = DoEvents()
If TZ = True Then  ''''停止退出
  Timer1.Enabled = False
  Timer2.Enabled = False
  Exit Sub
End If
If (MSComm1.InBufferCount = IBYTE) Then  
  BUFFER = MSComm1.Input
  ARR = BUFFER
  CRCR = 65535
  For TXI = 0 To IBYTE - 3
    CRCCAL = ARR(TXI) Xor CRCR And 255
    CRCCAL = CRC(CRCCAL)
    CRCR = (CRCR And 65280) / 256
    CRCR = CRCR Xor CRCCAL
  Next TXI
  If (ARR(IBYTE - 2) = (CRCR And 255)) Then
    If (ARR(IBYTE - 1) = (CRCR And 65280) / 256) Then
      Timer2.Enabled = False
      If ZH = ARR(0) And IBYTE = 37 Then
       .Cells(TXJ, 9).Value = ""
        For TXI = 0 To 6
        A = ARR(TXI * 4 + 3)
        B = ARR(TXI * 4 + 4)
        C = ARR(TXI * 4 + 5)
        D = ARR(TXI * 4 + 6)
        F = READCARD(A, B, C, D, E)
        Select Case TXI
       Case 0
        .Cells(TXJ, 9).Value = Format(E, "#0")
       Case 1
        If Val(.Cells(TXJ, 11).Value) > E + 1 Then
           .Cells(TXJ, 10).Value = Val(.Cells(TXJ, 10).Value) + 1
        End If
         .Cells(TXJ, 11).Value = Format(E, "#0")
         .Cells(TXJ, 5).Value = Val(.Cells(TXJ, 10).Value) * 100000 + Val(.Cells(TXJ, 11).Value)
       Case 3
        .Cells(TXJ, 6).Value = Format(E, "#0.00")
       Case 5
        .Cells(TXJ, 7).Value = Format(E, "#0.00")
       Case 6
        .Cells(TXJ, 8).Value = Format(E, "#0.00")
       End Select
      Next TXI
      Exit Do
     End If
     If ZH = ARR(0) And IBYTE = 17 Then
      .Cells(TXJ, 7).Value = ""
      For TXI = 0 To 2
       A = ARR(TXI * 4 + 3)
       B = ARR(TXI * 4 + 4)
       C = ARR(TXI * 4 + 5)
       D = ARR(TXI * 4 + 6)
       F = READCARD(A, B, C, D, E)
       Select Case TXI
       Case 0
        .Cells(TXJ, 7).Value = Format(E, "#0")
       Case 1
          If Val(.Cells(TXJ, 11).Value) > E + 1 Then
           .Cells(TXJ, 10).Value = Val(.Cells(TXJ, 10).Value) + 1
        End If
        .Cells(TXJ, 11).Value = Format(E, "#0")
        .Cells(TXJ, 5).Value = Val(.Cells(TXJ, 10).Value) * 100000 + Val(.Cells(TXJ, 11).Value)
       Case 2
        .Cells(TXJ, 6).Value = Format(E, "#0.00")
       End Select
      Next TXI
      Exit Do
     End If
   End If
 End If
 End If
 If SBCS > 3 Then  ''''通讯失败
   .Cells(TXJ, 6).Value = ""
   .Cells(TXJ, 7).Value = ""
   .Cells(TXJ, 8).Value = ""
   .Cells(TXJ, 9).Value = ""
   Timer2.Enabled = False
   Exit Do
  End If
 Loop
End With
Return
End Sub
Private Sub timer2_Timer()   ''''重发请求
 Timer2.Enabled = False
 SBCS = SBCS + 1
 If SBCS > 3 Then
    Exit Sub
 End If
 MSComm1.InputLen = 0
 MSComm1.RThreshold = IBYTE
 MSComm1.InBufferCount = 0
 MSComm1.NullDiscard = False
 MSComm1.Output = OUTBUF
 Timer2.Enabled = False
 Timer2.Interval = 500
 Timer2.Enabled = True
End Sub








[此贴子已经被作者于2004-7-16 9:24:05编辑过]

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

78.0005