為什么存入VW10,卻用的是VB11?
10年積累的成都做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有堯都免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
VW 中的W表示W(wǎng)ORD ?VB中的B表示BYTE ?一個(gè)WORD由兩個(gè)BYTE組成。
例 如十進(jìn)制的9999這個(gè)數(shù),用16進(jìn)制表示是270F ?VW10=270F ??
VW10=270F ?VB10=27 ? VB11=0F
270F
9999=39(16進(jìn)制27)*16*16 + ?0*16+F(10進(jìn)的15)
VW10 ? ? ? ? ?VB10 ? ? ? ? ? ? ? ? ? ? ? ? ?VB11
為什么取VB11的高四位的時(shí)候,先用了一個(gè)除法,除法的作用是什么?
高4位的表示已經(jīng)乘過兩個(gè)16 ? ?比如 100 這個(gè)十進(jìn)數(shù) ?可以理解這個(gè)1是 1*10*10
就算VW10除以16出來(lái)VB20,怎么后面又用VB21了?完全不懂這里面VW,VB的前后關(guān)系
VW10除以16以后的值不僅是VB20,而是VW20, VW20包含VB20 和VB21。
聲明.dll中的函數(shù)時(shí),要注意變量類型在VB6與VB.NET下有所不同,比如在VB6下聲明為long長(zhǎng)整的,在VB.NET下有可能要聲明為integer整型,原因是變量類型的長(zhǎng)度在VB.NET下已經(jīng)發(fā)生了變量,所以不能照搬了。其它的自己測(cè)試吧,也可以上網(wǎng)找一下這方面的資料。
在百度上搜索一個(gè)叫做 WinTcpS7.DLL 的文件,是官方認(rèn)證的VS與S7 PLC通訊的.NET程序集,很方便的,
沒用過modbus通信寫過,但是使用自由通信可以
VB.net帶有通信控件,在里面設(shè)置波特率、奇偶效驗(yàn)、數(shù)據(jù)位、COM口
在PLC里做個(gè)自由通信就可以
tcp協(xié)議是一個(gè)世界公開的協(xié)議,既然你在vb端能搞定如何進(jìn)行數(shù)據(jù)通訊,1200就很簡(jiǎn)單了。
在1200側(cè)你只需建立一個(gè)tcp的連接即可,連接類型為未指定,之后按照你自己的要求確定誰(shuí)是客戶機(jī),誰(shuí)是服務(wù)器就好了,具體的建立連接的步驟可以參照1200的文檔,你可以在下面的文檔的通訊一章找到如何建立TCP連接的過程
西門子 S7-1200 PLC Smart Plus 技術(shù)參考Version 1.8