vb6.0或vba用ppi協議怎么讓s7-200的q0.1或q0.0置1,具體怎么寫?
===================================
朗風電氣答疑:以下是按PPI協議編寫的一小段VBA程序,是把數據寫入QB0存儲器,使Q0.7~Q0.0口得到不同的狀態。至于怎么從S7-200里讀數據,網上有很多介紹的,百度一下即可。在樓下我也轉載一些我從網上查到的資料供大家參考。(以下程序用S7-200仿真模擬軟件\IASIMU107B測試過,能正常使用,但還沒有在S7-200上測試,等測試完如有變化再更新):
Private Sub Q00_Click()
Q0_Value = &H1 ‘寫給像我一樣的PLC菜鳥:&H1是16進制的1,轉換成八位二進制就是00000001,這是讓Q 0.0=1;如果讓Q0.1=1,則=&H2(八位二進制00000010);讓Q0.2=1,則=&H4(八位二進制00000100);讓Q0.1和Q0.0同時=1,則=&H3(八位二進制00000011);這個值可以是&H0~&HFF中的任意一個值,使Q0.7~Q0.0得到得到不同的狀態
Write_Q0 (Q0_Value)
End Sub
Sub Write_Q0(ByRef Q0_Value)
Dim str_write(0 To 37) As Byte
Dim str_val(0 To 5) As Byte
Dim haha As Byte
Dim i As Integer
Dim Temp_FCS As Variant
MSComm1.RThreshold = 24
str_write(0) = &H68
str_write(1) = &H20
str_write(2) = &H20
str_write(3) = &H68
str_write(4) = &H2
str_write(5) = &H0
str_write(6) = &H7C
str_write(7) = &H32
str_write(8) = &H1
str_write(9) = &H0
str_write(10) = &H0
str_write(11) = &H0
str_write(12) = &H0
str_write(13) = &H0
str_write(14) = &HE
str_write(15) = &H0
str_write(16) = &H5
str_write(17) = &H5
str_write(18) = &H1
str_write(19) = &H12
str_write(20) = &HA
str_write(21) = &H10
str_write(22) = &H2
str_write(23) = &H0
str_write(24) = &H1
str_write(25) = &H0
str_write(26) = &H1
str_write(27) = &H82
str_write(28) = &H0
str_write(29) = &H0
str_write(30) = &H0 ' 如果是改寫Q0.x,這個地方就=&H0;如果是改寫Q1.x,這個地方就是=&H8
str_write(31) = &H0
str_write(32) = &H4
str_write(33) = &H0
str_write(34) = &H8
str_write(35) = Q0_Value 'QB的值,也就是Q0.x或Q1.x的狀態
For i = 4 To 35
Temp_FCS = Temp_FCS + str_write(i)
Next
str_write(36) = Temp_FCS Mod 256
str_write(37) = &H16
MSComm1.Output = str_write
Sleep (50)
str_val(0) = &H10
str_val(1) = &H2
str_val(2) = &H0
str_val(3) = &H5C
str_val(4) = &H5E
str_val(5) = &H16
MSComm1.Output = str_val
End Sub
Private Sub UserForm_Initialize()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,e,8,1"
MSComm1.InputLen = 0
MSComm1.RThreshold = 24
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
End Sub