Bài tập Đo lường điều khiển bằng máy tính - Nguyễn Thanh Bình

- Bấm START gởi xuống 5 byte: “@” hai byte bềrộng xung (Text1) hai byte chu kỳ

xung (Text2), Text1 và Text2 chứa sốthập phân từ1 đến 10000, đơn vịthời gian msec.

- Bấm STOP gởi xuống 1 byte “!”.

- Sau khi gởi dữliệu 0,1 giây, nếu không nhận được phản hồi thì báo dòng chữ“Not

Connected”.

- Máy tính nhận được “@” cho đèn shape màu xanh

- Máy tính nhận được “!” cho đèn shape màu đỏ

 

docx18 trang | Chuyên mục: Đo Lường Công Nghiệp | Chia sẻ: tuando | Lượt xem: 556 | Lượt tải: 0download
Tóm tắt nội dung Bài tập Đo lường điều khiển bằng máy tính - Nguyễn Thanh Bình, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÀI TẬP
ĐO LƯỜNG ĐIỀU KHIỂN BẰNG MÁY TÍNH
Lớp: DD11KSTD
Họ và tên SV: Nguyễn Thanh Bình
MSSV: 41100306
BÀI TẬP
 4. Điều khiển đèn GT:
a. Xanh A : Trong 15s 
b. Vàng A : Trong 3s 
c. Xanh B : Trong 25s 
d. Vàng B : Trong 4s 
Mở rộng cho chế độ người đi bộ.
INT_0
INT_1
8. Viết chương trình tạo PWM chu kỳ 1s, bề rộng tùy thuộc vào ô nhớ giá trị sai số 
trong ô nhớ MW0 
MW0 >= 100 T = 1s 
MW0 <100 T = MW0/100 
MW0<0 T =0 
I0.0 start 
I0.1 stop 
I0.2 30% (MW0 = 30) 
I0.3 70% (MW0 = 70) 
I0.4 100% (MW0 = 100) 
Default: 10%
9. Viết chương trình VB truyền VW0 xuống PLC
Dim strText As String
Private Sub btnExit_Click()
 MSComm1.PortOpen = False
 End
End Sub
Private Sub btnSend_Click()
 Dim TempVal
 Dim blnErrorFlag As Boolean
 If IsNumeric(Val(strText)) Then
 TempVal = Val(strText)
 If ((TempVal >= -32768) And (TempVal <= 32767)) Then
 MSComm1.Output = "@" + Chr(TempVal / 256) + Chr(TempVal Mod 256) + "$"
 blnError = False
 Else
 blnError = True
 End If
 Else
 blnError = True
 End If
 If blnError Then
 MsgBox "Invalid input", vbOKOnly, "Error"
 Else
 MsgBox "Data sent", vbOKOnly, "Serial transmitter"
 End If
End Sub
Private Sub Form_Load()
 If MSComm1.PortOpen Then
 MSComm1.PortOpen = False
 End If
 MSComm1.Settings = "9600,N,8,1"
 MSComm1.CommPort = 3
 MSComm1.RThreshold = 0
 MSComm1.PortOpen = True
 strText = 0
 Text1.Text = "0"
End Sub
Private Sub Text1_Change()
 strText = Text1.Text
End Sub
BÀI TẬP BỔ SUNG
4. Viết chương trình tưới cây tự động sau mỗi 3h, mỗi lần 30 phút; Thời gian từ 6h đến 20h hằng ngày.
7. Viết chương trình đọc AIW0 sau mỗi 100ms, truyền về máy tính. Sữ dụng ngắt.
8. Viết chương trình tính tổng 100 số word trong 2 vùng VW0 và VW200 bỏ vào VW500
10. Viết chương trình PLC phát xung PWM ởQ0.1 
- Nhận được „@‟và bốn byte theo sau thì phát xung điều rộng ởQ0.1 và gởi lên máy 
tính „@‟
- Nhận được „!‟thì ngừng phát xung và gởi lên máy tính „!‟
INT_0
11. Viết chương trình VB6.0 giao tiếp S7-200 COM1, 19200,N,8,1. 
- Bấm START gởi xuống 5 byte: “@” hai byte bềrộng xung (Text1) hai byte chu kỳ
xung (Text2), Text1 và Text2 chứa sốthập phân từ1 đến 10000, đơn vịthời gian msec. 
- Bấm STOP gởi xuống 1 byte “!”. 
- Sau khi gởi dữliệu 0,1 giây, nếu không nhận được phản hồi thì báo dòng chữ“Not 
Connected”. 
- Máy tính nhận được “@” cho đèn shape màu xanh 
- Máy tính nhận được “!” cho đèn shape màu đỏ
Bài làm:
Dim strLastText1 As String
Dim strLastText2 As String
Dim flgStart As Boolean
Private Sub btnExit_Click()
 MSComm1.PortOpen = False
 End
End Sub
Private Sub btnStart_Click()
Dim strSend As String
Dim intSend1 As Integer
Dim intSend2 As Integer
intSend1 = Val(Text1.Text)
intSend2 = Val(Text2.Text)
If intSend1 <= intSend2 Then
 strSend = "@" + Chr(intSend1 \ 256) + Chr(intSend1 Mod 256) + Chr(intSend2 \ 256) + Chr(intSend2 Mod 256)
 If flgStart = False Then
 MSComm1.PortOpen = True
 flgStart = True
 End If
 MSComm1.Output = strSend
 Timer1.Enabled = True
Else
 MsgBox "The Text2's value must be greater than or equal to the Text1's one", vbOKOnly, "Error"
End If
End Sub
Private Sub btnStop_Click()
If flgStart = True Then
 Timer1.Enabled = False
 MSComm1.Output = "!"
 MSComm1.PortOpen = False
 flgStart = False
End If
Shape1.FillColor = vbBlack
Label1.Caption = "Not Connected"
End Sub
Private Sub Form_Load()
btnStart.Caption = "START"
btnStop.Caption = "STOP"
btnExit.Caption = "EXIT"
Shape1.Shape = 3
Shape1.FillColor = vbBlack
Shape1.FillStyle = 0
If MSComm1.PortOpen Then
 MSComm1.PortOpen = False
End If
MSComm1.Settings = "19200,n,8,1"
MSComm1.CommPort = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
Text1.Text = "0"
Text2.Text = "0"
strLastText1 = "0"
strLastText2 = "0"
Timer1.Interval = 100 ' 0.1 sec
Timer1.Enabled = False
Label1.FontSize = 12
Label1.Caption = "Not Connected"
flgStart = False
End Sub
Private Sub Text1_Change()
If (Not IsNumeric(Text1.Text)) And Text1.Text "" Then
 Text1.Text = strLastText1
 Text1.SelStart = Len(strLastText1)
Else
 If Val(Text1.Text) > 10000 Then
 Text1.Text = strLastText1
 Text1.SelStart = Len(strLastText1)
 MsgBox "Overflow", vbOKOnly, "Error"
 Else
 strLastText1 = Text1.Text
 End If
End If
End Sub
Private Sub Text2_Change()
If (Not IsNumeric(Text2.Text)) And Text2.Text "" Then
 Text2.Text = strLastText2
 Text2.SelStart = Len(strLastText2)
Else
 If Val(Text2.Text) > 10000 Then
 Text2.Text = strLastText2
 Text2.SelStart = Len(strLastText2)
 MsgBox "Overflow", vbOKOnly, "Error"
 Else
 strLastText2 = Text2.Text
 End If
End If
End Sub
Private Sub Timer1_Timer()
Dim strReceive As String
If MSComm1.InBufferCount > 0 Then
 strReceive = MSComm1.Input
 If Right(strReceive, 1) = "!" Then
 Shape1.FillColor = vbRed
 End If
 If Right(strReceive, 1) = "@" Then
 Shape1.FillColor = vbGreen
 End If
Else
 Shape1.FillColor = vbBlack
 Label1.Caption = "Not Connected"
End If
End Sub

File đính kèm:

  • docxbai_tap_do_luong_dieu_khien_bang_may_tinh_nguyen_thanh_binh.docx