Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
có bác nào đã viết chương trình giao tiếp giữa VB với plc S7-200 của siemen chưa.em chỉ làm chương trình đơn giản ,đó là dùng nút command trên VB ,khi bấm nút này thì PLC sẽ truyền tín hiệu đầu ra Q0.0 .
xin cảm ơn trước .
Xin hoi Mstudio8x nhe.
Minh cung moi tim hieu mang tu dong nay, minh dang thu voi PC access, VB, va muon test luon tren PLC sim S7-200. Minh dung luon VB sample project trong pc access, chay PLC sim S7-200 va van de la khi read hoac write thi value luon bao la "BAD". Minh khong ro co dung dc PLC sim nay de test ko. Mong Mstudio8x tra loi giup nhe. Thanks!
PLC thi xai VB lam j. Dung may phan mem SCADA ay ban,nhu Intouch,GeniDAQ... No truy xuat truc tiep den tung o nho trong PLC luan,don gian va hieu qua. ma giao dien thi co the lam theo y minh.
Để thực việc giao tiếp qua VB6 hoặc OPC bạn đều cần kết hợp giữa việc lập trình trên PC và việc lập trình dưới PLC. Với PLC của một số hãng có cung cấp sẵn tài liệu truyền thông liên quan như Mitsu thì bạn có thể sử dụng VB trực tiếp truyền thông với PLC còn với PLC của Siemen hay một số hãng khác thì cách để code truyền thông nhanh nhất là dùng OPC. Bạn có thể tham khảo các bài hướng dẫn về PC Access cho Siemen. Hoặc liên hệ với số điện thoại này: 0977209365 người này đã từng làm khá nhiều về PLC S7-200 và S7-300 của Siemen.
Chúc bạn thành công
Mình đang làm đồ án cân băng định lượng cho nhà máy Ximang.Bạn biết cách nào giao tiếp giữa VB và PLC S7-200,giúp minh với.Thanks
Chào anh các bạn nhé!
lâu rồi không lên diễn đàn thấy mọi người bạn về giao tiếp PLC với máy tình dùng VB mạnh quá lên vào nêu vài ý kiến thế này:
- VB hoàn toàn có thể dùng để thiết kế giao diện điều khiển, giám sát PLC được (tôi đã làm với S7-200 của simen)
- Còn chương trình VB viết thế nào thì các bạn có thế tham khảo bài viết của anh NGô Hải Bắc trong diễn đàn nói rất kỹ về cách sử dụng activeX Mscomm của VB rồi
- Đối với PLC thì các bạn cần thiết lập khung truyền, giao thức truyền và cuối cùng là các bạn dùng thuật toán so sánh giá trị nhận được từ trên PC xuống có đúng không? Đúng thì làm gì đó còn không đúng thì làm gì đó tùy các bạn dùng thôi
- Nhưng theo mình thì khi nhận dữ liệu từ PC gửi xuống các bạn nên dùng ngắt cho nhanh và hiêụ quả
- Còn truyền từ PLC lên máy tính thì các bạn chỉ cần đặt dữ liệu cần truyền vào một bảng rồi truyền nó lên thôi (Tùy theo giao thức các bạn thiết lập ban đầu trong PLC mà có các câu lệnh truyền, nhận dữ liêụ được phần mềm hỗ trợ)
Chúc các bạn thành công.
NGUYỄN XUÂN VŨ
Mua bán, sửa chữa PLC, biến tần
Vỉ mạch điện tử công nghiệp các loại 0978462163
Chào anh các bạn nhé!
lâu rồi không lên diễn đàn thấy mọi người bạn về giao tiếp PLC với máy tình dùng VB mạnh quá lên vào nêu vài ý kiến thế này:
- VB hoàn toàn có thể dùng để thiết kế giao diện điều khiển, giám sát PLC được (tôi đã làm với S7-200 của simen)
- Còn chương trình VB viết thế nào thì các bạn có thế tham khảo bài viết của anh NGô Hải Bắc trong diễn đàn nói rất kỹ về cách sử dụng activeX Mscomm của VB rồi
- Đối với PLC thì các bạn cần thiết lập khung truyền, giao thức truyền và cuối cùng là các bạn dùng thuật toán so sánh giá trị nhận được từ trên PC xuống có đúng không? Đúng thì làm gì đó còn không đúng thì làm gì đó tùy các bạn dùng thôi
- Nhưng theo mình thì khi nhận dữ liệu từ PC gửi xuống các bạn nên dùng ngắt cho nhanh và hiêụ quả
- Còn truyền từ PLC lên máy tính thì các bạn chỉ cần đặt dữ liệu cần truyền vào một bảng rồi truyền nó lên thôi (Tùy theo giao thức các bạn thiết lập ban đầu trongPLC mà có các câu lệnh truyền, nhận dữ liêụ được phần mềm hỗ trợ)
Chúc các bạn thành công.
NGUYỄN XUÂN VŨ
Mua bán, sửa chữa PLC, biến tần
Vỉ mạch điện tử công nghiệp các loại 0978462163
Các anh ơi,giúp em với.
Em đang dùng phần mềm GENIDAQ của hãng Avantech để điều khiển TỐC ĐỘ động cơ sử dụng bộ PID,sử dụng card PCI 1711.
Giúp em với.
Code VB6.0 Cho S7-200:
Dim CNT As Integer
Option Explicit
Option Base 1
Dim Values(20) As Variant
Private MyOPCServer As OPCServer
Private MyGroups As OPCGroups
Private WithEvents MyGroup As OPCGroup ' OPCGroup Object
Private MyItems As OPCItems ' OPCItems Collection Object
Private MyItemServerHandles() As Long ' Server Handles for Items
Dim MyTID As Long ' Transaction ID for asynchronous calls
Private Sub AddGroup()
On Error GoTo ErrorHandler
Set MyGroups = MyOPCServer.OPCGroups
MyGroups.DefaultGroupIsActive = 500
MyGroups.DefaultGroupIsActive = False
Set MyGroup = MyGroups.Add(TGroup)
MyGroup.IsSubscribed = True
Exit Sub
ErrorHandler:
MsgBox Err.Description + Chr(13) + "Adding a Group to OPC Server", vbCritical, "ERROR"
End Sub
Private Sub RemoveGroups()
On Error GoTo ErrorHandler
MyGroups.RemoveAll
Set MyGroup = Nothing
Set MyGroups = Nothing
Exit Sub
ErrorHandler:
MsgBox Err.Description + Chr(13) + "Removing Group from OPC Server", vbCritical, "ERROR"
End Sub
Private Sub AddItem()
On Error GoTo ErrorHandler
Dim i As Long
Dim ErrorFlag As Boolean
Dim ItemObj As OPCItem
Dim ItemIDs(20) As String
Dim ItemClientHandles(20) As Long
Dim Errors() As Long
ErrorFlag = False
Set MyItems = MyGroup.OPCItems
ItemIDs(1) = "2,S0.0,Bool" ' RUN.
ItemIDs(2) = "2,S1.5,Bool" ' STOP.
ItemIDs(3) = "2,S0.1,Bool"
ItemIDs(4) = "2,S0.3,Bool" ' DAU TO CHAY NHANH.
ItemIDs(5) = "2,S0.5,Bool" ' DAU THU CHAY NHANH.
ItemIDs(6) = "2,S0.7,Bool" ' DAU TO CHAY CHAM.
ItemIDs(7) = "2,S0.6,Bool" ' DAU THU CHAY CHAM.
ItemIDs(8) = "2,S1.0,Bool" ' CHAY DIA DAO.
ItemIDs(9) = "2,S0.2,Bool" ' CHAY DIA DAO.
ItemIDs(10) = "2,S1.2,Bool" ' CHON CHE DO CHAY.
ItemIDs(11) = "2,S1.3,Bool"
ItemIDs(12) = "2,S1.4,Bool"
ItemIDs(13) = "2,Q0.0,Bool" ' CHAY BOM THUY LUC.
ItemIDs(14) = "2,Q0.1,Bool" ' LENH STOP.
ItemIDs(15) = "2,Q0.2,Bool" ' INPUT.
ItemIDs(16) = "2,Q0.3,Bool" ' LED POWER.
ItemIDs(17) = "2,Q0.4,Bool" ' INPUT.
ItemIDs(18) = "2,Q0.5,Bool" ' INPUT.
ItemIDs(19) = "2,Q0.6,Bool" ' INPUT.
ItemIDs(20) = "2,Q0.7,Bool" ' INPUT.
For i = 1 To 20
ItemClientHandles(i) = 1
Next
Call MyItems.AddItems(20, ItemIDs, ItemClientHandles, MyItemServerHandles, Errors)
For i = 1 To 20
If Not Errors(i) = 0 Then
MsgBox "Item " + Str$(i) + " FAILED. Error Code = " + Str$(Errors(i)), vbCritical
ErrorFlag = True
End If
Next
If ErrorFlag Then
Dim RemoveErrors() As Long
Dim RemoveHandles(1) As Long
For i = 1 To 20
If Errors(i) = 0 Then
RemoveHandles(1) = MyItemServerHandles(i)
Call MyItems.Remove(1, RemoveHandles, RemoveErrors)
End If
Next
Else
End If
Exit Sub
ErrorHandler:
MsgBox Err.Description + Chr(13) + "Them Items toi Group", vbCritical, "ERROR"
End Sub
Private Sub RemmoveItems()
On Error GoTo ErrorHandler
Dim i As Long
Dim Errors() As Long
Call MyItems.Remove(20, MyItemServerHandles, Errors)
For i = 1 To 20
If Not Errors(i) = 0 Then MsgBox "Item " + Str$(i) + " FAILED. Error Code = " + Str$(Errors(i)), vbCritical
Next
Erase MyItemServerHandles
Exit Sub
ErrorHandler:
MsgBox Err.Description + Chr(13) + "Do bo Items tu Group", vbCritical, "ERROR"
End Sub
Private Sub Connect()
On Error GoTo ErrorHandler
Set MyOPCServer = New OPCServer ' Init create OPCServer Object.
Call MyOPCServer.Connect(TServer) ' Init Disconnect from OPC Server.
Call AddGroup ' Init call Add Group.
Call AddItem ' Init call Add Item.
SbrStatus.Panels("Status").Text = "Status: Connectting..."
Exit Sub
ErrorHandler:
MsgBox Err.Description + Chr(13) + "Ket noi toi OPC Server", vbCritical, "ERROR"
Exit Sub
End Sub
Private Sub Disconnect()
Dim i As Integer
On Error GoTo ErrorHandler
MyOPCServer.Disconnect ' Khong ket noi toi OPC Server.
Set MyOPCServer = Nothing ' Xoa doi tuong OPCServer.
TimerRead.Enabled = False
SbrStatus.Panels("Status").Text = "Status: Disconnect"
Exit Sub
ErrorHandler:
MsgBox "Khong ket noi toi OPC Server", vbCritical, "ERROR"
End Sub
Private Sub Cmdinfor_ValueChanged(ByVal Value As Boolean)
If Value = True Then
frmUserInfo.Show
Else
frmUserInfo.Hide
End If
End Sub
Private Sub CmdQuit_Click()
Dim Respone As Integer
Respone = MsgBox("Ban chac chan muon thoat he thong?", 36, "Thong bao cua he thong")
If Respone = vbYes Then
TimerRead.Enabled = False
End
End If
End Sub
Private Sub S00_ValueChanged(Index As Integer, ByVal Value As Boolean)
On Error GoTo ErrorHandler
Dim Errors() As Long
If Value = True Then
Call Connect
Values(Index) = 1
Call MyGroup.SyncWrite(Index, MyItemServerHandles, Values, Errors)
If Not Errors(Index) = 0 Then MsgBox "Item " + Str$(Index) + " FAILED. Error Code = " + Str$(Errors(Index)), vbCritical
Exit Sub
Else
Values(Index) = 0
Call MyGroup.SyncWrite(Index, MyItemServerHandles, Values, Errors)
If Not Errors(Index) = 0 Then MsgBox "Item " + Str$(Index) + " FAILED. Error Code = " + Str$(Errors(Index)), vbCritical
Exit Sub
End If
ErrorHandler:
MsgBox "Khong the gui du lieu xuong CPU", vbCritical, "ERROR"
End Sub
Private Sub Form_Load()
MyTID = 1 ' Reset Transaction ID
LEDPOWER.Value = True
CNT = 0
TServer = "S7200.OPCServer"
TGroup = "Group1"
End Sub
' Unload Form Event
Private Sub Form_Unload(Cancel As Integer)
Call RemmoveItems 'Remove Items.
Call RemoveGroups 'Remove Groups.
Call Disconnect
End Sub
Private Function GetQualityText(Quality) As String
Select Case Quality
Case 0: GetQualityText = "BAD"
Case 64: GetQualityText = "UNCERTAIN"
Case 192: GetQualityText = "GOOD"
Case 8: GetQualityText = "NOT_CONNECTED"
Case 13: GetQualityText = "DEVICE_FAILURE"
Case 16: GetQualityText = "SENSOR_FAILURE"
Case 20: GetQualityText = "LAST_KNOWN"
Case 24: GetQualityText = "COMM_FAILURE"
Case 28: GetQualityText = "OUT_OF_SERVICE"
Case 132: GetQualityText = "LAST_USABLE"
Case 144: GetQualityText = "SENSOR_CAL"
Case 148: GetQualityText = "EGU_EXCEEDED"
Case 152: GetQualityText = "SUB_NORMAL"
Case 216: GetQualityText = "LOCAL_OVERRIDE"
Case Else: GetQualityText = "UNKNOWN QUALITY"
End Select
End Function
'********************CHUONG TRINH DOC CAC BITS CUA S7-200*********************************************
Private Sub TimerRead_Timer()
On Error GoTo ErrorHandler
Dim i As Long
Dim Values() As Variant
Dim Errors() As Long
Dim Qualities As Variant
Dim TimeStamps As Variant
Call MyGroup.SyncRead(OPCDevice, 20, MyItemServerHandles, Values, Errors, Qualities, TimeStamps)
For i = 1 To 20
If Not Errors(i) = 0 Then
MsgBox "Item " + Str$(i) + " FAILED. Error Code = " + Str$(Errors(i)), vbCritical
Else
If Qualities(i) = 192 Then
TxtRead(i) = Values(i) ' Write Value to Text Box.
Else
TxtRead(i) = GetQualityText(Qualities(i))
End If
End If
Next
'TRANG THAI CUA CAC LED.
If TxtRead(16) = True Then ' Led Power
LEDOUT.Item(3).Value = True
LEDPOWER.Value = False
SbrStatus.Panels("Status").Text = "Status: Startting..."
SbrStatus.Panels("ConnectTime").Text = " " & Format(Now, "dd-mm-yyyy hh:nn:ss")
Else
LEDOUT.Item(3).Value = False
LEDPOWER.Value = True
SbrStatus.Panels("Status").Text = "Status: Stoped..."
SbrStatus.Panels("ConnectTime").Text = " "
End If
If TxtRead(1) = True Then
LED.Item(0).Value = True
S00.Item(1) = True
Else
LED.Item(0).Value = False
S00.Item(1) = False
End If
If TxtRead(2) = True Then
LED.Item(1).Value = True
S00.Item(2) = True
Else
LED.Item(1).Value = False
S00.Item(2) = False
End If
If TxtRead(3) = True Then
LED.Item(2).Value = True
S00.Item(3) = True
Else
LED.Item(2).Value = False
S00.Item(3) = False
End If
If TxtRead(4) = True Then
LED.Item(3).Value = True
S00.Item(4) = True
Else
LED.Item(3).Value = False
S00.Item(4) = False
End If
If TxtRead(5) = True Then
LED.Item(4).Value = True
S00.Item(5) = True
Else
LED.Item(4).Value = False
S00.Item(5) = False
End If
If TxtRead(6) = True Then
LED.Item(5).Value = True
S00.Item(6) = True
Else
LED.Item(5).Value = False
S00.Item(6) = False
End If
If TxtRead(7) = True Then
LED.Item(6).Value = True
S00.Item(7) = True
Else
LED.Item(6).Value = False
S00.Item(7) = False
End If
If TxtRead(8) = True Then
LED.Item(7).Value = True
S00.Item(8) = True
Else
LED.Item(7).Value = False
S00.Item(8) = False
End If
If TxtRead(9) = True Then
LED.Item(8).Value = True
S00.Item(9) = True
Else
LED.Item(8).Value = False
S00.Item(9) = False
End If
If TxtRead(10) = True Then
LED.Item(9).Value = True
S00.Item(10) = True
Else
LED.Item(9).Value = False
S00.Item(10) = False
End If
If TxtRead(11) = True Then
LED.Item(10).Value = True
S00.Item(11) = True
Else
LED.Item(10).Value = False
S00.Item(11) = False
End If
If TxtRead(12) = True Then
LED.Item(11).Value = True
S00.Item(12) = True
Else
LED.Item(11).Value = False
S00.Item(12) = False
End If
If TxtRead(13) = True Then
LEDOUT.Item(0).Value = True
Else
LEDOUT.Item(0).Value = False
End If
If TxtRead(14) = True Then
LEDOUT.Item(1).Value = True
Else
LEDOUT.Item(1).Value = False
End If
If TxtRead(15) = True Then
LEDOUT.Item(2).Value = True
Else
LEDOUT.Item(2).Value = False
End If
If TxtRead(17) = True Then
LEDOUT.Item(4).Value = True
Else
LEDOUT.Item(4).Value = False
End If
If S00.Item(3) = True And S00.Item(4) = True Then
LEDOUT1.Item(1).Value = True
Else
LEDOUT1.Item(1).Value = False
End If
If S00.Item(5) = True And S00.Item(6) = True Then
LEDOUT1.Item(2).Value = True
Else
LEDOUT1.Item(2).Value = False
End If
Exit Sub
ErrorHandler:
LED.Item(0).BackColor = vbRed
SbrStatus.Panels("ConnectTime").Text = ""
SbrStatus.Panels("Status").Text = "Status: Co loi xay ra, xin vui long kiem tra cong truyen thong hoac Cap noi tu PC to CPU(S7-200)"
End Sub
Chúc các Bạn thành công.
Chào bạn MSTUDIO8X
mình cố gắng đọc nhưng không hiểu như thế nào cả. bạn cho mình biết cái code đó để điều khiển như thế nào, và chương trình PLC, chương trình trên PC .. nói chungbạn có thể giải thích cho mình kỹ hơn được ko. mình rất muốn học cái này nhưng nói thật là chưa đủ điều kiện. bạn giúp tôi làm một cái ví dụ nhỏ thôi. cảm ơn nhiều
chào anh các bạn nhé!
Lâu rồi không lên diễn đàn thấy mọi người bạn về giao tiếp plc với máy tình dùng vb mạnh quá lên vào nêu vài ý kiến thế này:
- vb hoàn toàn có thể dùng để thiết kế giao diện điều khiển, giám sát plc được (tôi đã làm với s7-200 của simen)
- còn chương trình vb viết thế nào thì các bạn có thế tham khảo bài viết của anh ngô hải bắc trong diễn đàn nói rất kỹ về cách sử dụng activex mscomm của vb rồi
- đối với plc thì các bạn cần thiết lập khung truyền, giao thức truyền và cuối cùng là các bạn dùng thuật toán so sánh giá trị nhận được từ trên pc xuống có đúng không? đúng thì làm gì đó còn không đúng thì làm gì đó tùy các bạn dùng thôi
- nhưng theo mình thì khi nhận dữ liệu từ pc gửi xuống các bạn nên dùng ngắt cho nhanh và hiêụ quả
- còn truyền từ plc lên máy tính thì các bạn chỉ cần đặt dữ liệu cần truyền vào một bảng rồi truyền nó lên thôi (tùy theo giao thức các bạn thiết lập ban đầu trong plc mà có các câu lệnh truyền, nhận dữ liêụ được phần mềm hỗ trợ)
chúc các bạn thành công.
chào xuanvu_dk2
bạn có thể cho mình một cái ví dụ hoặc cái gì nó cụ thể hơn được ko.
Vì chưa có kiến thức chuyên sâu, mong bạn thông cảm
+ Cung cấp Free code cho các bạn lười nghiên cứu
+ VB6.0:
Dim SendMsg As String
Dim SendData As Variant
Dim CheckSum As String
Option Explicit
Private Sub CmdQuit_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Else
End
End If
End
End Sub
Private Sub CmdStart_Click()
SendMsg = "01050C30FF00"
CheckSum = LRC(SendMsg)
SendData = ":" + SendMsg + CheckSum + vbCrLf
MSComm1.RTSEnable = True
MSComm1.Output = SendData
TxtSend.Text = SendData
End Sub
Private Sub CmdStop_Click()
SendMsg = "01050C300000"
CheckSum = LRC(SendMsg)
SendData = ":" + SendMsg + CheckSum + vbCrLf
MSComm1.RTSEnable = True
MSComm1.Output = SendData
TxtSend.Text = SendData
End Sub
Private Sub MSComm1_OnComm()
Dim Rbuff As Variant
Dim RUN_STOP As String
Dim Yxx As String
Dim Msg As Variant
Select Case MSComm1.CommEvent
Case comEvSend
MSComm1.RTSEnable = False
Case comEvReceive
WaitTimer (2)
While MSComm1.InBufferCount > 0
Rbuff = MSComm1.Input
TxtReceive.Text = Rbuff
'// Trang thai RUN & STOP cua PLC.
RUN_STOP = Mid$(Rbuff, 8, 2) 'RUN=1, STOP = 0.
Select Case RUN_STOP
Case "31"
LedRunStop.FillColor = vbGreen 'RGB(0, 255, 0)
StatusBar.Panels("Status").Text = "PLC Runing..."
Case "30"
LedRunStop.FillColor = vbRed 'RGB(255, 0, 0)
StatusBar.Panels("Status").Text = "PLC Stopped..."
End Select
Wend
End Select
End Sub
Private Sub Form_Initialize()
StatusBar.Panels("Status").Text = "PLC Stopped..."
End Sub
Private Sub Form_Load()
With MSComm1
.CommPort = 1 ' Using Com1
.Settings = "9600,E,7,1" ' Mac dinh.
.InBufferSize = 1024
.OutBufferSize = 1024
.SThreshold = 1
.RThreshold = 1
.InputLen = 0
.InputMode = comInputModeText
.DTREnable = True
.RTSEnable = False
If .PortOpen = False Then
.PortOpen = True
End If
End With
End Sub
Private Sub Form_Terminate()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
End Sub
Public Function LRC(Str As String) As String
Dim Chk1 As Variant, Chk0 As Variant, Chk_data As String
Dim i As Integer, Length As Integer
i = 0
Length = Len(Str)
For i = i + 1 To Length
Chk_data = Mid$(Str, i, 2)
Chk0 = Chk0 + Val("&H" + Chk_data)
i = i + 1
Next i
If Chk0 > &HFF Then
Chk0 = Chk0 Mod &H100
End If
Chk1 = Hex(&HFF - Chk0 + 1)
If Len(Chk1) > 2 Then
Chk1 = Mid(Chk1, Len(Chk1) - 1, 2)
End If
LRC = Chk1
End Function
Private Sub ScanTime_Timer() ' Luon RUN
SendMsg = "01010C300001" 'M1072 Start/Stop Flag
CheckSum = LRC(SendMsg)
SendData = ":" + SendMsg + CheckSum + vbCrLf
MSComm1.RTSEnable = True
MSComm1.Output = SendData
TxtSend.Text = SendData
End Sub
Chào bạn.
có thể hướng dẫn cho tôi một ví dụ về VB6.0 để nối kết với một bộ điều khiển nhiệt độ DTV của Delta. tôi có thấy trên data sheet của bộ DTV nó có chỉ một số về truyền thông, nhưng tôi không hiểu gì cả.
bạn vui lòng chỉ tôi bằng cách làm như thế nào, và bắt đầu ra sao để thực hiện.
cảm ơn rất nhiều.
Chào bạn.
có thể hướng dẫn cho tôi một ví dụ về VB6.0 để nối kết với một bộ điều khiển nhiệt độ DTV của Delta. tôi có thấy trên data sheet của bộ DTV nó có chỉ một số về truyền thông, nhưng tôi không hiểu gì cả.
bạn vui lòng chỉ tôi bằng cách làm như thế nào, và bắt đầu ra sao để thực hiện.
cảm ơn rất nhiều.
Bạn lấy cái phần mềm của nó rồi dùng bộ chuyển đổi rs232/485 là ghi nhiệt đọ, xem đồ thị ok luôn
cái này mình làm rồi. đơn giản thôi
Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).
Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
Uống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?
Comment