⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 write_frm.frm

📁 VB和西门子s300plc串口通讯程序 能实现读写功能
💻 FRM
字号:
VERSION 5.00
Begin VB.Form WRITE_FRM 
   Caption         =   "写PLC"
   ClientHeight    =   5790
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   7095
   LinkTopic       =   "Form1"
   ScaleHeight     =   5790
   ScaleWidth      =   7095
   StartUpPosition =   2  '屏幕中心
   Begin VB.CommandButton IDWRITE 
      Caption         =   "写"
      Height          =   375
      Left            =   1200
      TabIndex        =   27
      Top             =   5280
      Width           =   1695
   End
   Begin VB.Frame Frame1 
      Caption         =   "请选择要写入的PLC数据区域"
      Height          =   3135
      Left            =   120
      TabIndex        =   20
      Top             =   1920
      Width           =   3015
      Begin VB.OptionButton DataField 
         Caption         =   "输入(Input Bytes)"
         Height          =   255
         Index           =   0
         Left            =   360
         TabIndex        =   26
         Top             =   360
         Width           =   2535
      End
      Begin VB.OptionButton DataField 
         Caption         =   "输出(Output Bytes)"
         Height          =   255
         Index           =   1
         Left            =   360
         TabIndex        =   25
         Top             =   840
         Width           =   2535
      End
      Begin VB.OptionButton DataField 
         Caption         =   "存储区(Flag Bytes)"
         Height          =   255
         Index           =   2
         Left            =   360
         TabIndex        =   24
         Top             =   1320
         Width           =   2535
      End
      Begin VB.OptionButton DataField 
         Caption         =   "时间(Timer Words)"
         Height          =   255
         Index           =   3
         Left            =   360
         TabIndex        =   23
         Top             =   1800
         Width           =   2535
      End
      Begin VB.OptionButton DataField 
         Caption         =   "计数(Counter Words)"
         Height          =   255
         Index           =   4
         Left            =   360
         TabIndex        =   22
         Top             =   2280
         Width           =   2535
      End
      Begin VB.OptionButton DataField 
         Caption         =   "数据块(DB Words)"
         Height          =   255
         Index           =   5
         Left            =   360
         TabIndex        =   21
         Top             =   2760
         Width           =   2535
      End
   End
   Begin VB.Frame Frame2 
      Caption         =   "请选择要写入数据的位置/数量/类型"
      Height          =   1695
      Left            =   3240
      TabIndex        =   13
      Top             =   1920
      Width           =   3735
      Begin VB.TextBox DBID 
         Height          =   270
         Index           =   0
         Left            =   1440
         TabIndex        =   16
         Top             =   360
         Width           =   855
      End
      Begin VB.TextBox DATAADR 
         Height          =   270
         Index           =   1
         Left            =   1440
         TabIndex        =   15
         Top             =   780
         Width           =   855
      End
      Begin VB.TextBox DATAAMT 
         Height          =   270
         Index           =   2
         Left            =   1440
         TabIndex        =   14
         Top             =   1200
         Width           =   855
      End
      Begin VB.Label READPAR 
         Caption         =   "数据块号"
         Height          =   255
         Index           =   0
         Left            =   240
         TabIndex        =   19
         Top             =   360
         Width           =   975
      End
      Begin VB.Label READPAR 
         Caption         =   "字/字节地址"
         Height          =   255
         Index           =   1
         Left            =   240
         TabIndex        =   18
         Top             =   780
         Width           =   1095
      End
      Begin VB.Label READPAR 
         Caption         =   "字/字节个数"
         Height          =   255
         Index           =   2
         Left            =   240
         TabIndex        =   17
         Top             =   1200
         Width           =   1095
      End
   End
   Begin VB.Frame Frame3 
      Caption         =   "连接状态"
      Height          =   1695
      Left            =   120
      TabIndex        =   2
      Top             =   120
      Width           =   6855
      Begin VB.TextBox STATIONADR 
         Height          =   375
         Index           =   0
         Left            =   1440
         TabIndex        =   7
         Top             =   240
         Width           =   855
      End
      Begin VB.TextBox SLOTNO 
         Height          =   375
         Index           =   3
         Left            =   3720
         TabIndex        =   6
         Top             =   720
         Width           =   855
      End
      Begin VB.TextBox RACKNO 
         Height          =   375
         Index           =   2
         Left            =   1440
         TabIndex        =   5
         Top             =   720
         Width           =   855
      End
      Begin VB.TextBox SEGMENTID 
         Height          =   375
         Index           =   1
         Left            =   3720
         TabIndex        =   4
         Top             =   240
         Width           =   855
      End
      Begin VB.TextBox AGSTATUS 
         Height          =   375
         Left            =   1440
         TabIndex        =   3
         Top             =   1200
         Width           =   5055
      End
      Begin VB.Label Label5 
         Caption         =   "Slot No."
         Height          =   375
         Left            =   2520
         TabIndex        =   12
         Top             =   720
         Width           =   1455
      End
      Begin VB.Label Label4 
         Caption         =   "Rock No."
         Height          =   375
         Left            =   120
         TabIndex        =   11
         Top             =   720
         Width           =   1455
      End
      Begin VB.Label Label3 
         Caption         =   "Segment ID"
         Height          =   375
         Left            =   2520
         TabIndex        =   10
         Top             =   240
         Width           =   1455
      End
      Begin VB.Label Label2 
         Caption         =   "Station Adr"
         Height          =   375
         Left            =   120
         TabIndex        =   9
         Top             =   240
         Width           =   1095
      End
      Begin VB.Label Label1 
         Caption         =   "状态描述"
         Height          =   375
         Left            =   120
         TabIndex        =   8
         Top             =   1200
         Width           =   1095
      End
   End
   Begin VB.CommandButton IDCANCEL 
      Caption         =   "放弃"
      Height          =   375
      Left            =   3480
      TabIndex        =   1
      Top             =   5280
      Width           =   1575
   End
   Begin VB.Frame Frame4 
      Caption         =   "写入的值(Hex)"
      Height          =   1335
      Left            =   3240
      TabIndex        =   0
      Top             =   3720
      Width           =   3735
      Begin VB.TextBox WritTxt 
         Height          =   975
         Left            =   240
         TabIndex        =   28
         Top             =   240
         Width           =   3015
      End
   End
End
Attribute VB_Name = "WRITE_FRM"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Private Sub DATAADR_Change(Index As Integer)
    DATANO = DATAADR(1).Text
End Sub

Private Sub DATAAMT_Change(Index As Integer)
    AMOUNT = DATAAMT(2).Text
End Sub

Private Sub DBID_Change(Index As Integer)
    BLOCKNO = DBID(0).Text
End Sub

Private Sub Form_Activate()
STATIONADR(0).Text = plcadr(VerbIdx).ADR
SEGMENTID(1).Text = plcadr(VerbIdx).SEGMENTID
RACKNO(2).Text = plcadr(VerbIdx).RACKNO
SLOTNO(3).Text = plcadr(VerbIdx).SLOTNO

DataField(0).value = True
DataFieldIdx = 0

res = new_ss(VerbIdx + 1)

If (res = 0) Then
    AGSTATUS.Text = "ok"
    Else
ErrorText = "                                                                          "
res = error_message(res, ErrorText)
AGSTATUS.Text = ErrorText
End If


End Sub

Private Sub Form_Click()
unload_tool
End
End Sub

Private Sub IDCANCEL_Click()
Me.Visible = False
End Sub

Private Sub IDWRITE_Click()
Dim i, j, k As Long
Dim s As String
Dim s1 As String
Dim wrivalue(5) As Integer
If (AMOUNT > 512) Then AMOUNT = 512


res = new_ss(VerbIdx + 1)
If (res = 0) Then
'Select Case DataFieldIdx
'    Case 0
'        res = e_field_write(DATANO, AMOUNT, value_byte(0))
'    Case 1
'        res = a_field_write(DATANO, AMOUNT, value_byte(0))
'    Case 2
'        res = m_field_write(DATANO, AMOUNT, value_byte(0))
'    Case 3
'        Call swab_buffer(value_word(0), 512)
'        res = t_field_write(DATANO, AMOUNT, value_word(0))
'    Case 4
'        Call swab_buffer(value_word(0), 512)
'        res = z_field_write(DATANO, AMOUNT, value_word(0))
'    Case 5
       Call swab_buffer(value_word(0), 2)
        res = db_write(BLOCKNO, DATANO, AMOUNT, value_word(0))
       

'End Select
End If

If (res <> 0) Then
   MsgBox "failure in reading!"
End If

End Sub

Private Sub DataField_Click(Index As Integer)
DataFieldIdx = Index
Select Case Index
    Case 0
        READPAR(0).Visible = False
        DBID(0).Visible = False
    Case 1
        READPAR(0).Visible = False
        DBID(0).Visible = False
    Case 2
        READPAR(0).Visible = False
        DBID(0).Visible = False
    Case 3
        READPAR(0).Visible = False
        DBID(0).Visible = False
    Case 4
        READPAR(0).Visible = False
        DBID(0).Visible = False
    Case 5
        READPAR(0).Visible = True
        DBID(0).Visible = True
End Select

End Sub

Private Sub WritTxt_Change()
Dim strValue As String
Dim i As Integer

If (DataFieldIdx = 0 Or DataFieldIdx = 1 Or DataFieldIdx = 2) Then
    strValue = WritTxt.Text
    For i = 0 To AMOUNT - 1
        value_byte(i) = Mid(strValue, i * 3 + 1, 2)
    Next i
Else
    strValue = WritTxt.Text
    For i = 0 To AMOUNT - 1
        'value_word(i) = Mid(strValue, i * 5 + 1, 4)
                value_word(i) = Mid(strValue, 1, 5)

    '    Debug.Print "value_word(" & i & ")=" & value_word(i)
    '  Stop
        
    Next i
End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -