操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊


    1、引言

    在網絡的各個層上,隨著自動化和控制工程師需要與網絡打交道的機會越來越多,聯網的愿望和需要也正在逐漸高漲。而且,在監控和數據采集應用中,大多數工程師已將以太網協議應用于數據采集與監視控制系統(SCADA)和工廠的診斷、測試及維護。如何簡便地實現與PLC的交互已經成為眾多廠商新的競爭戰場。由此產生了人機界面及各種組態軟件產品,這些產品的出現簡化了對PLC的控制、操作,使PLC的應用更加方便。但也有其共同的缺點,價格普遍偏高和可二次開發性較差。VB作為“原始”的編程語言,兼具了上述兩方面的優勢。本文結合一個簡單的案例來粗略討論如何通過VB實現PC機與PLC的以太網通信問題。

    2、以太網通信的基本概念

    2.1以太網的標準

    以太網是一種局域網。早期標準為IEEE 802.3,數據鏈路層使用CSMA/CD,10Mb/s速度物理層有:

    (1)10 Base 5粗同軸電纜,RG-8,一段最長為500m。

    (2)10 Base 2細同軸電纜,RG-58,一段最長為185m。

    (3)10 Base T雙絞線,UTP或STP,一段最長為100m。

    2.2工業以太網與商用以太網的區別

    什么是工業以太網?技術上,它與IEEE802.3兼容,故從邏輯上可把商用網和工業網看成是一個以太網,而用戶可根據現場情況,靈活裝配自己的網絡部件。但從工業環境的惡劣和抗干擾的要求,設計者希望采用市場上可找到的以太網芯片和媒介,兼顧考慮下述工業現場的特殊要求:首先要考慮高溫、潮濕、振動。二是對工業抗電磁干擾和抗輻射有一定要求,如滿足EN50081-2、EN50082-2標準,而辦公室級別的產品未經這些工業標準測試,表1列出了一些常用工業標準。為改善抗干擾性和降低輻射,工業以太網產品多使用多層線路板或雙面電路板,且外殼采用金屬如鑄鋁屏蔽干擾。三是電源要求,因集線器、交換機收發器多為有源部件,而現場電源的品質又較差,故常采用雙路直流電或交流電為其供電,另外考慮方便安裝,工業以太網產品多數使用DIN導軌或面板安裝。四是通信介質選擇,在辦公室環境下多數配線使用UTP,而在工業環境下推薦用戶使用STP(帶屏蔽雙絞線)和光纖

    2.3 使用TCP/IP協議的原因及其概述

    最主要的一個原因在于它能使用在多種物理網絡技術上,包括局域網和廣域網技術。TCP/IP協議的成功,很大程度上取決于它能適應幾乎所有底層通信技術。20世紀80年代初,先在X.25上運行TCP/IP協議;而后又在一個撥號語音網絡(如電話系統)上使用TCP/IP協議,又有TCP/IP在令牌環網上運行成功;最后又實現了TCP/IP遠程分組無線網點與其他Internet網點間TCP/IP通信。所以TCP/IP協議極其靈活,具備連接不同網絡的能力。另外,使用TCP/IP也簡化了OSI模型,因為它省略了表示層和會話層。如果現在把以太網的物理層和數據鏈路層加到OSI模型,就構成了基于以太網的TCP/IP網,如圖1所示。用以太網實現TCP/IP也是經濟的一種方式。

    IP是Internet最基本的協議。IP是面向報文的協議,它獨立處理每個報文包,每個報文包必須含有完整的尋址信息。IP報文包的格式如圖2所示。

    圖2 IP報文包的格式

    IP地址的類型共有4種(如圖3所示):A類用于處理超大型網絡,最多16387064個主機(1~126);B類網絡最多可有64516個主機(網絡地址的第一段為128~191);C類用于小型網絡,最多可有254個主機(網絡地址的第一段為192~223);D類用于多點播送,用于多目的信息的傳輸。全零(“0.0.0.0”)地址對應于當前主機,全1地址(“255.255.255.255”)是當前子網的廣播地址。

    TCP是基于傳輸層的協議,協議文件可從RFC793得到,使用廣泛,面向連接的可靠協議。它能把報文分解為數段,在目的站再重新裝配這些段,支持重新發送未被收到的段,提供兩臺設備間的全雙工連接,允許它們高效地交換大量數據。TCP使用滑動窗口協議來高效使用網絡。由于TCP很少干預底層投遞系統的工作,它適應各種投遞系統,且提供流量控制,能使各種不同速率的系統進行通信。報文段是TCP所使用的基本傳輸單元,用于傳輸數據或控制信息。

    3、MODBUS數據幀格式

    在TCP/IP以太網上傳輸,支持Ethernet II和802.3兩種幀格式。圖3所示,Modbus TCP數據幀包含報文頭、功能代碼和數據3部分。

    4、MODBUS功能代碼

    4.1 3種類型

    (1)公共功能代碼(如表2所示):已定義好的功能碼,保證其唯一性,由Modbus.org認可。

    (2)用戶自定義功能代碼有兩組,分別為65~72和100~110,無需認可,但不保證代碼使用的唯一性。如變為公共代碼,需交RFC認可。

    (3)保留的功能代碼,由某些公司使用在某些傳統設備的代碼,不可作為公共用途。

    表2 Modbus常用公共代碼功能

    4.2功能代碼劃分:按應用深淺,可分為3個類別。

    (1)類別0,對于客戶機/服務器最小的可用子集:讀多個保持寄存器(fc.3);寫多個保持寄存器(fc.16)。

    (2)類別1,可實現基本互易操作的常用代碼:讀線圈(fc.1);讀開關量輸入(fc.2);讀輸入寄存器(fc.4);寫線圈(fc.5);寫單一寄存器(fc.6)。

    (3)類別2,用于人機界面、監控系統的例行操作和數據傳送功能:

    (4)強制多個線圈(fc.15);讀通用寄存器(fc.20);寫通用寄存器(fc.21);屏蔽寫寄存器(fc.22);讀寫寄存器(fc.23)。

    5、VB的基本概念

    VB(Visual Basic)是面向對象的程序設計語言,用它來開發Windows操作系統下的應用程序,它提供了很多接口成員,對象、屬性、事件、方法就是4個重要的接口,VB提供了許多常用的控件。

    5.1卷標控件

    卷標控件如圖4(a)所示,該控件專用于顯示文字、數字用,顯示如圖4(b)所示。

    5.2 按鈕控件

    按鈕控件如圖5(a)所示,該控件使用率很高,提供一個供系統用戶操作用的按鈕,如圖5(b)所示。

    6、基于Winsock控件的TCP/IP以太網通信

    要完成VB與PLC等設備的以太網通信要用到Winsock控件,在此有必要對該控件作較詳細的說明。Winsock是一個ActiveX控件,需要要手動添加許多項目,其步驟如下:

    (1)選擇菜單的【工程】。

    (2)選擇【部件】。

    (3)在彈出的對話框中做如圖6的選擇。

    圖6 對話框界面

    (4)如圖7所示,在部件選項卡就會出現Winsock控件。

    7、Winsock控件的基本屬性

    此控件對于用戶在運行時不可見,提供了一個簡單的途徑訪問TCP及UDP網絡服務而無需了解底層細節,使用時你只需設置屬性、在恰當的時候調用它提供的方法即可。

    主要屬性有:

    BytesReceived:返回當前緩沖區中的字節數量,我們可以使用 GetData 方法以接收數據。只讀且設計時不可用。

    LocalHostName:返回本機名字符串,設計時不可用。

    LocalIP:返回以(xxx.xxx.xxx.xxx)格式表達的IP地址串。設計時不可用,運行時只讀。

    LocalPort :本機使用接收端口可讀寫,設計時可用,Long型。對于客戶,如果無需指定端口,則用端口0發送數據。在此情況下,控件將隨機選擇一個端口。在一個連接確定后,為TCP的端口。對于服務器,指用于監聽的端口。如設置為0,則用隨機數。在調用Listen 方法后,該屬性自動包含用到的端口。端口0總是用于在兩計算機間建立動態連接。客戶希望通過端口0獲得一個隨機端口以”回調”連接服務器。

    Protocol :套接字類型,為TCP或UDP二者之一,缺省為TCP類型。設置為sckTCPProtocol表示TCP協議sckUDPProtocol表示UDP協議。在此屬性被重置之前需用Close方法關閉之。

    RemoteHost:發送或接收數據的主機,你可提供主機名如:FTP://ftp.microsoft.com,或一IP地址串,例如“100.0.1.1”。

    RemoteHostIP:遠程主機的IP地址。對于客戶程序,在連接確定后使用Connect方法,此屬性包含遠程主機的IP名串。對于服務器程序, 在引入連接需求后(Connection Request 事件),此屬性包含IP串。當使用UDP套接字,在Data Arrival事件發生后,此屬性為發送UDP數據的機器IP地址串。

    RemotePort:連接套接字端口值。例如通常HTTP應用使用80端口,FTP則使用21。

    State:控件的狀態, 只讀且設計時不可用。可為以下值:

    常量描述

    sckClosed 0 缺省值,關閉套接字

    sckOpen 1 打開套接字

    sckListening 2 正監聽端口

    sckConnectionPending 3 正在進行未定的連接

    sckResolvingHost 4 正解析主機地址

    sckHostResolved 5 主機地址已解析

    sckConnecting 6 正在連接

    sckConnected 7 已連接

    sckClosing 8 連接關閉

    sckError 9 錯誤

    8、VB與PLC基于MODBUS TCP的以太網通信的實現

    以下舉例說明如何實現VB與PLC的以太網通信。

    (1)控制要求:用交替型按鈕控制Y0,并用指示燈顯示Y0狀態(綠色為運行,紅色為停止);能夠對D100、D200兩個寄存器進行數值寫入與讀出的操作。

    (2)實現思路:同樣Y0的地址分別為H0500。寫入FF00為ON,0000為OFF,按功能碼05操作;D100,D200地址分別為H1064,H10C8,按功能碼03操作即可實現寄存器的讀功能,按功能碼10H操作即可實現寄存器的寫功能。

    (3)VB接口的設計如圖8所示

    在界面中用按鈕控制Y0的ON/OFF及D100、D200數據的寫與讀;用shape組件做指示燈,指示Y0的ON/OFF狀態;用Winsock控件實現PLC與VB的通信。

    (1)實現功能的代碼構成

    (2)建立網絡連接

    Private Sub Command1_Click()

    Winsock1.Close

    Winsock1.Connect Text1, 502

    Label2.Caption = “Version: 1.0 : ” + Format(Now, “mmm dd yyyy Hh:Nn:Ss”)

    Command1.Enabled = False

    Command1.Enabled = False

    Text1.Enabled = False

    End Sub

    (2)、Y0的ON/OFF控制

    Private Sub Comd_send_Click()

    On Error GoTo ErrProc

    Dim sendstr(14) As Byte

    sendstr(0) = &H0 ‘交換識別號高字節,通常為0

    sendstr(1) = &H0 ’交換識別號低字節,通常為0

    sendstr(2) = &H0 ‘協議識別號高字節,為 0

    sendstr(3) = &H0 ’協議識別號低字節,為 0

    sendstr(4) = &H0 ‘字節長度高字節

    sendstr(5) = &H9 ’以下字節長度低字節

    sendstr(6) = &HFF ‘單元識別號,確省為 255

    sendstr(7) = &H5 ’寫一個線圈命令代碼

    sendstr(8) = &H0 ‘寫線圈的起始地址高字節

    sendstr(9) = &H1’寫線圈的起始地址低字節

    sendstr(10) = a ‘=FF打開線圈,=00關閉線圈

    sendstr(11) = &H0 ’

    Dim aStr As String

    Dim i, j As Integer

    For i = 0 To 11

    aStr = aStr & Chr(sendstr(i))

    Next

    Winsock1.SendData aStr

    Exit Sub

    ErrProc:

    MsgBox “傳輸數據失敗”, vbCritical, “網絡傳輸”

    End Sub

    (3)線圈狀態顯示及寄存器讀出數據顯示

    Private Sub winsock1_DataArrival(ByVal bytesTotal As Long)

    Dim strdata() As Byte

    Dim i, j As Integer

    Dim s As String

    Dim s1 As String

    Dim IO As Byte

    i = Winsock1.BytesReceived

    ReDim strdata(i)

    Winsock1.GetData strdata, vbByte, i

    For j = 0 To i - 1

    s = s + Hex(strdata(j))

    Next

    If s Like “*5*” Then

    s1 = Mid(s, 12, 2)

    If s1 = “FF” Then

    IO = 1

    a = &H0

    Else

    IO = 0

    a = &HFF

    End If

    If IO = 1 Then

    Shape1.FillColor = RGB(0, 255, 0) ‘green

    Labl3.Caption = “IO點接通”

    Else

    Shape1.FillColor = RGB(255, 0, 0) ’red

    Labl3.Caption = “IO點斷開”

    End If

    End If If s Like “*3*” Then

    Text3.Text = Text3.Text + Mid(s, 11) + “”

    End If

    (4)、讀多個寄存器數據

    End Sub Private Sub Command4_Click()

    On Error GoTo ErrProc

    Dim str(12) As Byte

    str(0) = &H0 ‘交換識別號高字節,通常為 0

    str(1) = &H0 ’交換識別號低字節,通常為 0

    str(2) = &H0 ‘協議識別號高字節,為 0

    str(3) = &H0 ’協議識別號低字節,為 0

    str(4) = &H0 ‘字節長度高字節

    str(5) = &H6 ’以下字節長度低字節

    str(6) = &HFF ‘單元識別號,確省為 255

    str(7) = &H3 ’讀多個寄存器命令代碼

    str(8) = &H10 ‘讀數據的起始地址高字節

    str(9) = &HC8 ’讀數據的起始地址低字節

    str(10) = &H0 ‘數據長度高字節

    str(11) = &H1 ’數據長度低字節

    Dim bStr As String

    Dim i As Integer

    For i = 0 To 11

    bStr = bStr & Chr(str(i))

    Next

    Winsock1.SendData bStr

    Exit Sub

    ErrProc:

    MsgBox “傳輸數據失敗”, vbCritical, “網絡傳輸”

    End Sub

    D100寄存器的寫入操作類似,由于篇幅所限其他代碼在此就不再贅述。

    9.結速語

    工業以太網是工業自動化網絡發展的必然趨勢,為了對工業設備進行實時的管理與監控,工業以太網設備大多都支持遠程管理,而且各廠商業都有各自的網絡管理軟件以提供對網絡設備進行友好的圖形化界面操作。管理員還可以通過遠程telnet或web界面的方式直接對設備進行調試。完善的兼容性,可靠的穩定性,對惡劣環境的適應性,強大的冗余能力和方便的可管理性,是人們越來越多地在網絡設計過程中采用工業以太網的原因,而這也勢必成為工業以太網在越來越多的網絡環境里大顯身手的重要契機。借臺達即將推出以太網模塊之際撰寫此文,希望能夠為其以太網模塊的推廣提供一些幫助。由于本人水平有限本文編寫難免會有錯漏之處,也請讀者給予批評指正。

    前言

    VB仍不失為一把好手

    光陰似箭,2021也在各種爭吵中落下帷幕,開通自媒體賬號也已有300天,這期間有落寞,也有驚喜。落寞的是,VB家族的確已日薄西山,從大家的反饋中亦可窺見勢微之一二。驚喜的是,在業余編程群體中,VB/VBA/VBS仍然是他們的最愛。業余編程,要想產生更有價值的成果,專業概念(學習)是繞不過的。但在極為有限的投入下(時間、精力、意愿),如何平衡簡單粗暴與精細專深之間的矛盾?

    VB家族從誕生之日起,就鐫刻著計算機編程教育的基因。很多人只看到了VB作為可視化編程的先驅,曾經紅極一時,卻看不到其真正的易用性和低門檻,在于骨子里的編程啟蒙教育理念。天下編程工具,多如牛毛,唯VB(BASIC)是為教育而生。所以,VB系列極易上手。但成也蕭何敗也蕭何,VB家族的勢微,也同樣與其基因有關。

    在BASIC和VB的時代,計算機編程尚是一野荒地,編程是使用計算機的必經之路。但隨著操作系統的崛起和完善,隨著現代軟件業的繁榮,編程已經發展成為一個令人矚目的職業。人們使用計算機(PC、智能手機及其他終端設備),完全憑借一些觀感就可上車,甚至橫行霸道。編程作為一個專業,無論是教育還是應用,都已發展成為一個極為成熟的產業。

    在一個極細分工的現代社會里,需要的是專業的人做專業的事。為非專業的人提供非專業的編程工具,邏輯上已發生了翻天覆地的變化。它不再需要像若干年前那樣直面代碼,取而代之的是AI輔佐下的各種輕代碼或奔自然語言編程,本質上是如何使用存量代碼庫的應用問題。所以,輪子封裝性不夠的VB家族,敗下陣來也在情理之中。

    凡是要取代VB的,沒扯上AI,可不就不咋樣嘛

    AI究竟會將人類帶向何處?就目前而言還看不出端倪,至少在很長一段時間里,AI還是沒有辦法取代人類的主觀能動性。VB/VBA這種直面代碼的業余方式,仍然是很多人最穩妥的選擇。所以BtOfficer將VB家族作為首推分享板塊,具體理由已在過往文章中闡述過。本著為廣大非職業IT普及適用的IT技術框架,本文將過往文章(200多篇)分類整理于此(『《藍色》』為鏈接樣式,可點擊查閱),以便各位取閱,為后續深入學習打下信心、概念方面的基礎。

    一、定位篇

    1、是什么促使BtOfficer要分享IT技術?

    互聯網AI主導下的新型編程,會抹掉很多東西

    盡管有簡單易用的Python和C#后來居上,但他們的概念體系仍然是建立在專業者的角度。純現代意義的初學者語言,除了少兒編程外,幾乎不再有生存的土壤。造成這一結果的根本原因,在于專業編碼的巨大存量。很多人,包括專業編碼者們或許都堅定地認為,未來很長一段時間,傳統碼手的地位都不可動搖。

    但事實并非如此(《AI寫代碼,來得讓人猝不及防!》《程序員是怎么記住許許多多的語法的?》可見一斑,在數據量尚未積累得足夠龐大之前,憑經驗誰也不知道還有哪些關系尚未被人類發現。尿不濕與啤酒的故事,就是數據的規模化效應之一。世間萬物之間,并非看得見的才叫因果,很多看不見的往往成為神論。然而,人類已經發現了通往神秘之門的鑰匙。

    一個個小小的人,以匹夫之勇在地表,舉不足百斤,臥不過三尺,走不及風水。但聚眾之力,可移山改川,可星辰大海,在廣袤的地表和太空遍布文明的痕跡。人類的光芒,閃耀在遙遙太空之中。人類的觸手正如藤蔓,一個錨點一個錨點地快速向前。集眾之智乃大智,這便是那把鑰匙。

    互聯網AI便是集眾之智,即便硅基芯片不能真正地成為人工智能的棲身之所,攫取眾人之智,已足以讓其變得強大無比。然而,這是人類整體層面上的某種進化,對于個體而言或許很難避免被“壓榨”的過程如何更全面、更客觀地看待和適應自身的處境?或許《互聯的圍城,已春暖花開,我卻心向羅盤荒野》可以告訴你。

    該文首先,從AI的概念講起,因為AI與互聯網的合一,是二者在當前技術框架下,必然的進化方向,而AI正是關乎進化的關鍵。其次,講AI與互聯網的現實、進化,我等是如何自陷,又如何自救。摘自該文一小段的《大數據能可怕到什么程度?》獲得了近40萬閱讀和近1000贊的成績,但更全面的文章卻僅有100閱讀和3贊。盡管數字世界里(包括以后的元宇宙),跨越邊界成為特權,從而重塑傳統邊界的定義,但并不妨礙我們建設和守好現有的傳統邊界。因為二者并非『不是你死便我亡』的互斥關系。

    眾智與小智之間,應當各有各的生存空間,應當互惠互利,相互成就,而非一廂情愿。小智不能濫竽充數,坐享眾智之便。眾智之上的AI也不能恃強凌弱,奴役個體。這就是為什么BtOfficer要分享IT技術給廣大非IT人員的原因所在。

    2、為什么鼓勵非IT適當掌握編程技能?

    要不要學,看看當年的打字員

    誠如華為任正非談公司人才體系所說,作為管理者,你不能要求每個員工都成為奮斗者。有的員工就想領點工資按時上下班,你得容忍和尊重這樣的員工。對于編程而言,并不是每個非IT都有必要來學,和愿意來學。即便學了的,也不是每個人都愿意更精進,得尊重那些得過且過的存在。

    所謂有錢難買我愿意,即便互聯網里高墻林立,即便智能手機上的APP都在覬覦個人隱私,能架住不用?如何平衡個體人的發展與人類整體發展之間的矛盾,也不是每個人必須要去思考和應對的。所以,明知山有虎,偏向虎山行的都是少數派,畢竟佛度有緣人嘛。任何一位奮斗者所收獲的,也絕非普通人所能想象的。不一樣的風景,得有不一樣的位置去觀察。

    在《明比閱歷淺,暗拼體力衰,指下講武德,碼上笑春風》一文中,詳細地分析了非IT人士是否需要掌握編程技能,掌握到何種程度,入門原則,入門工具的挑選原則,為何挑選VB系作為入門工具,如何開啟編碼武德之旅。

    BtOfficer的經驗證明,當1個專業人士掌握了地球上最通用的計算工具之后,可以將專業優勢進行數倍的放大。無論是工作效率,學習效率,還是在整合人際關系上,均能受益不少。這是在互聯網包圍下的個體,能夠獲得的為數不多的神器之一。

    3、為什么偏偏首推VB/VBA/VBS作為業余編程的入門工具?

    從這個界面開始,她就專為教育而生

    有人說,VB(包括BASIC)當年成為入門的不二法門,是因為沒得選,而現今有更好的選擇了。這句話,既正確又不正確。它得考慮受眾是誰?如果一個人有意愿,也有時間,為什么要學VB呢?成為編碼專業人士的渠道千千萬,但最后都離不開基礎,與其在捷徑中胡亂碰撞,還不如從基礎開始一步一個腳印。

    什么是基礎?那是半導體工業體系歷經上百年的沉淀。或許有人認為這么說很夸張,軟件尤其是系統屏蔽了很多硬件層的東西,從而使得軟硬件分離。事實上,就網上漂浮的絕大部分碼手,離硬件都非常的遙遠。但這并不能說,不懂硬件,不了解硬件就能做好這一行業。恰恰是懂硬件者,才是基本盤的操持者,微軟、蘋果、谷歌等概莫能外。

    過來人都清楚,要想掌握半導體工業在軟件層的映射,絕非一朝一日之事。專業人士,爬過高考,躺過本碩博,再經若干項目的錘煉,都不一定能成為行家。上過幾十個IT素質教育課時的童鞋們,憑什么能成為IT專家?在不同基礎層面來看,有基礎的可選項的確是多了,但對沒有基礎的人而言,歷史的發展并未過多地偏向他們,留給業余人士的選項并未因此而增加。所以,地毯式的專業學習之路,壓根就不適合業余編程選手。

    4、VB/VBA/VBS分享定位在什么層面?

    擺出最里面的

    在分享期間,有不少朋友詢問能否普及更基礎一點的概念。VB/VBA/VBS的基礎部分,網上有太多的資料,也有太多自媒體運營者在分享相關內容,再重復并無太多意義。所以這部分,BtOfficer主要針對流行的一些錯誤進行糾正。反倒是VB/VBA/VBS很根底的內容,在網上很難見到,BtOfficer會著重圍繞這部分進行分享。

    在后續分享的VB/VBA/VBS插件里,會包括更系統的基礎知識,從語法語句到內置函數,再到API和具體應用源碼案例,均以動態幫助的形式呈現給用戶,有需要的屆時可下載使用。

    雖然,大部分內容適合有一定基礎的朋友,比如講原理的部分。但這并不意味著,分享的內容不適合初入門的人。VB系大道至簡,再深入的東西,回到最后都是簡單的語句和函數針對語句用法用例上的結論,是通用的。掌握這些結論,便可不費吹灰之力就可提升代碼的質量。即便有些內容現階段夠不著,在往后的應用中,遲早都有見面的那一天。待到那時,翻出來看一看,想必會順利很多。

    更何況,深入VB的部分(尤其是BtOfficer改進VB的部分),對絕大部分VB用戶都是一樣的,是一個全新的領域。總之,如果信哥,那就跟我走,必然會還你一個非同凡響的VB家族。

    二、信心篇

    沒有什么比過時、淘汰更能讓人感到沮喪的了。尤其是對VB家族而言,沒有前途的言論正在主宰著入門者清秀的眼神。但很少有人去問,為何過了半個世紀,BASIC的后人依然在數千種開發工具中位居前20(據坊間流傳的排行榜)。要知道,現在微軟的GitHub Copilot可以根據功能注釋自動補全(寫)代碼了。所以,有必要去一探究竟,為正確的選擇提供充足的參考。

    1、操作系統與開發工具之間的關系

    想想這些齒輪里怎么就轉出了系統和各色語言?

    正如前文所說,現代開發工具,在操作系統的加持下,讓很多開發者能夠遠離硬件端,而成為純軟件開發者。網絡上大部分爭得面紅耳赤的,都是沒能遵循凡事看硬件的基本邏輯。相信很多人也不會去想,操作系統和開發工具之間的關系。那么《以史為鑒,編程語言,啟示錄之系統覺醒》將是一個不錯的概覽。

    編程語言源自機械時代,隨著硬件的進化完善,而不斷演化。從救人于水火的助記匯編、到專注于科學計算的面向過程,再到可擴展易維護的面向對象,無一不是硬件在推波助瀾。就個人計算機而言,硬件體系在32位時代,就趨于穩定。后續的64位,也只不過是錦上添花而已。 每一種計算機語言,都誕生于特殊的需求,并經不斷完善,才有后來的樣子。這就意味著,每種語言都有長短之處。每個人的學習也應當有所側重,追求全能,就像Multics,注定很難有結果。 沒有過時的語言,只有趁手的工具。現代操作系統,將硬件層隔離,讓應用開發者遠離底層,這讓很多人誤以為,語言決定一切。孰不知,高級語言只是硬件的傳話筒而已,二進制指令才是機器上的唱歌的角兒。脫離硬件講語言,知其一不知其二也。

    2、BASIC、VB與VB.Net和PC操作系統(Windows)之間的關系

    榜上IBM,拉普通人選票,護花使者

    現代常青的開發工具,包括C在內,都汲取了很多前人的智慧。所以,評估一項開發工具是否適合自己的技術路線,很有必要去了解這項工具的設計意圖,當時技術的局限,以及后續的發展歷程。《VB前傳,從教學到游戲,再到系統,似乎每步都是精心設計》一文便講述了被淹沒在歷史中的那段過往。

    與BASIC一脈相承的VB,吸收了計算機發展史上,數種優秀開發語言的優點,最終落腳于服務普通大眾。因為心胸開闊的Kemeny和Kurtz深知,人才是計算機的靈魂和歸宿,普通大眾才能賦予計算機無限可能。BASIC的歷史脈絡,也告訴后繼的使用者,簡單里有深厚的哲學,抓住得住時機,才有自己的時代。

    不必苛責VB什么,找到合適的位置,這是BASIC立足于教育,帶給我們的啟示。誠如Kemeny所說,關鍵要看用戶能否意識到哪些是計算機可以做的,哪些是計算機不能做的。但很肯定,它能給企業和大部分私人生活帶來影響。

    如果說BASIC時代屬于混沌的前者,那么VB就屬于清醒的后者。《早判了,VB已死,但我說話了么?》一文將帶你了解屬于VB的哲學。在普通人通往程序之路上,VB就像擺渡人,接來一批又送走一批。VB存世的意義,或許就在于既普世又度人。心清腦秀者,許你3%得道升華。資歷平平者,也許你97%的凡人吃喝。

    VB的世界里有自由的周全,也有刻薄的束縛。她試圖讓所有人都能踏進編程的世界,并在這個晦澀的世界里護其周全。她也總拿自由不是沒有代價來告誡使用者,知其然還要知其所以然,到遠方去才是旅游的意義。

    正如《VB/VBA,請讓我點名表揚你》所說,深入理解VB的歷史,仍是把握VB適用場景的關鍵。

    3、VB過時淘汰之說蔚然成風,真實的信息是什么?

    官網一圖勝所有

    要說過時淘汰,很顯然并沒有,至少VBA還在大行其道。《VB/VBA這個打不死的小強,還會堅持多久?》一文,便圍繞『語言之爭』的若干問題,擺事實講依據,就Python與VBA,VB與VB.NET之間的恩恩怨怨來了個起底和辟謠。在這篇文章里,援引了微軟針對VB在各大系統的支持政策。從中不難發現,所謂VB之死,不過是IDE停止更新罷了。所謂Python替代VBA,不過是一投票帖數千點贊而已。屬于咱業余戶的家伙事,會繼續在Win10/Win11上演繹不老傳說。

    4、VB死掉的是什么,活下來的又是什么?

    偏離了商業開發的主路線

    此時的VB和彼時的VB,所處的技術環境和商業環境是不一樣的。如今VB勢微,更多的是指商業開發領域的工作機會。《VB、Delphi等編程語言沒落的主要原因有哪些?》或許可以回答VB過時淘汰的根本來源。

    作為專業的高級開發語言而言,它必須在高級的路上不斷的進化,才會有開發人員使用。大量開發人員的使用,才會降低項目的實施成本。相反,如果得不到進化,那么開發的人才資源,就會逐漸枯竭,從而提高項目的成本,進而影響項目的技術路線。對于專業開發人員而言,掌握一項停止進化的的高級開發語言,就意味著工作機會的收縮。

    但這對于一項可實施的技術而言,并不妨礙它繼續工作。所以這種落敗,不是指技術,而是指就業機會的凋零。就VB和Delphi而言,只要不用于糊口的工作,他們仍然是桌面應用開發的一把好手。正如《影響VB/VBA商業價值的原因是什么?》中所說,VB/VBA會逐漸演變成自產自用的小工具生產者角色。

    5、打不死的VB,何以存活?

    《為什么Windows的兼容性這么強大,到底用了什么技術?》,或許從系統的兼容特性,一直追溯到X86硬件體系,方能明白,小強不死,是有深層次原因的。

    6、場景與前景

    《Python取代VBA?先問C#答應否》

    《Office開發,選VSTO,還是VBA,Python行嗎?》

    《VBA源碼可以編譯嗎?》

    《VBA是腳本語言嗎?》

    《Excel公式算編程?還別說,真是一門編程語言!》

    《VB/VBA的改進思考》

    《為什么VBA名列最討厭編程語言第一名?》

    三、技術篇

    《vb/vba的數據類型,有大佬可深度介紹下嗎?》

    《VB的任性,從Variant開始》

    《VB的天地,橫看成嶺側成峰》

    《VB的整數,你真的了解?》

    《知VBA的浮點數結構,更懂算力》

    《VB/VBA的無符號整數》

    《VB/VBA之Boolean的坑,防不勝防,治標還得治本》

    《VB中Byte、Bool和Int與Lng的開銷及性能相同嗎?》

    《VB/VBA字符串》

    《VB/VBA的ByVal和ByRef》

    《VB/VBA中Variant不僅是容器,充當傳參的Any,更可以當函數用哦》

    《大家都有哪些提高VBA/VB代碼運行效率的小技巧?》

    ...哎喲,太多了,懶得整理了,有興趣的自己去翻吧。

    歡迎關注BtOfficer(收藏、點贊、關注+轉發),更多精彩仍在繼續哦(專欄文章將更系統,更全面,但需要閣下支持哦),有嚴肅的技術,也有輕松的嘮嗑,期待你的加入!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有