ethmpivb
Ⅰ vb對plc應用有用嗎要學的話先打好什麼學科基礎
有用啊,我現在就是用的工控機+VB+PLC來開發控製程序。。plc會送你一條電纜。可以跟計算機通迅,控制。
Ⅱ 通訊介面問題,有關於RS485,PCI,RS232,VB的問題
通訊距離是看通訊協議的,ppi通訊和mpi通訊都是用rs485,但是ppi屬於串口通信,通信資料上建議30米,實際可以做到50米。而現場匯流排通信和mpi通信,根據波特率,距離為150-1200米不等。
通信協議依賴通信埠,比如rs232就不能用做現場匯流排通信。
Ⅲ VB設計 通過OPC與西門子PLC通訊
朝2個方向去下手:
1用VB編制OPC伺服器。用VB來開發OPC伺服器,採用OPC開發包去實現,比較快捷,但開發包是要買的,否則還是用c來開發,要費時了。
2弄清西門子PLC的通訊協議:
200系列PLC一般用PPI和MODBUS協議。
300系列PLC一般用MPI和profbus,modbus,及乙太網通訊協議。 先從modbus去下手比較容易。也可以去西門子網站下載他的驅動 DLL來開發,但例子很少,組態王軟體中也有這個dll。。
Ⅳ VB中二進制文件的內容怎麼讀取
存放二進制文件的數據要使用位元組型數組,不能是字元型數組:
Dim DAT() As Byte
Dim FileSize As Long '文件長度
FileSize = FileLen(文件名) '獲取文件長度
ReDim DAT(FileSize - 1) As Byte
Open 文件名 For Binary As #1
Get #1, , DAT
Close
數據已經在DAT數組中了,你可以進行任意處理
Ⅳ vb中keycode 是什麼
keycode 是鍵盤上每一個按鍵對應的碼
keycode如下 :
keycode 0 =
keycode 1 =
keycode 2 =
keycode 3 =
keycode 4 =
keycode 5 =
keycode 6 =
keycode 7 =
keycode 8 = BackSpace BackSpace
keycode 9 = Tab Tab
keycode 10 =
keycode 11 =
keycode 12 = Clear
keycode 13 = Enter
keycode 14 =
keycode 15 =
keycode 16 = Shift_L
keycode 17 = Control_L
keycode 18 = Alt_L
keycode 19 = Pause
keycode 20 = Caps_Lock
keycode 21 =
keycode 22 =
keycode 23 =
keycode 24 =
keycode 25 =
keycode 26 =
keycode 27 = Escape Escape
keycode 28 =
keycode 29 =
keycode 30 =
keycode 31 =
keycode 32 = space space
keycode 33 = Prior
keycode 34 = Next
keycode 35 = End
keycode 36 = Home
keycode 37 = Left
keycode 38 = Up
keycode 39 = Right
keycode 40 = Down
keycode 41 = Select
keycode 42 = Print
keycode 43 = Execute
keycode 44 =
keycode 45 = Insert
keycode 46 = Delete
keycode 47 = Help
keycode 48 = 0 equal braceright
keycode 49 = 1 exclam onesuperior
keycode 50 = 2 quotedbl twosuperior
keycode 51 = 3 section threesuperior
keycode 52 = 4 dollar
keycode 53 = 5 percent
keycode 54 = 6 ampersand
keycode 55 = 7 slash braceleft
keycode 56 = 8 parenleft bracketleft
keycode 57 = 9 parenright bracketright
keycode 58 =
keycode 59 =
keycode 60 =
keycode 61 =
keycode 62 =
keycode 63 =
keycode 64 =
keycode 65 = a A
keycode 66 = b B
keycode 67 = c C
keycode 68 = d D
keycode 69 = e E EuroSign
keycode 70 = f F
keycode 71 = g G
keycode 72 = h H
keycode 73 = i I
keycode 74 = j J
keycode 75 = k K
keycode 76 = l L
keycode 77 = m M mu
keycode 78 = n N
keycode 79 = o O
keycode 80 = p P
keycode 81 = q Q at
keycode 82 = r R
keycode 83 = s S
keycode 84 = t T
keycode 85 = u U
keycode 86 = v V
keycode 87 = w W
keycode 88 = x X
keycode 89 = y Y
keycode 90 = z Z
keycode 91 =
keycode 92 =
keycode 93 =
keycode 94 =
keycode 95 =
keycode 96 = KP_0 KP_0
keycode 97 = KP_1 KP_1
keycode 98 = KP_2 KP_2
keycode 99 = KP_3 KP_3
keycode 100 = KP_4 KP_4
keycode 101 = KP_5 KP_5
keycode 102 = KP_6 KP_6
keycode 103 = KP_7 KP_7
keycode 104 = KP_8 KP_8
keycode 105 = KP_9 KP_9
keycode 106 = KP_Multiply KP_Multiply
keycode 107 = KP_Add KP_Add
keycode 108 = KP_Separator KP_Separator
keycode 109 = KP_Subtract KP_Subtract
keycode 110 = KP_Decimal KP_Decimal
keycode 111 = KP_Divide KP_Divide
keycode 112 = F1
keycode 113 = F2
keycode 114 = F3
keycode 115 = F4
keycode 116 = F5
keycode 117 = F6
keycode 118 = F7
keycode 119 = F8
keycode 120 = F9
keycode 121 = F10
keycode 122 = F11
keycode 123 = F12
keycode 124 = F13
keycode 125 = F14
keycode 126 = F15
keycode 127 = F16
keycode 128 = F17
keycode 129 = F18
keycode 130 = F19
keycode 131 = F20
keycode 132 = F21
keycode 133 = F22
keycode 134 = F23
keycode 135 = F24
keycode 136 = Num_Lock
keycode 137 = Scroll_Lock
keycode 138 =
keycode 139 =
keycode 140 =
keycode 141 =
keycode 142 =
keycode 143 =
keycode 144 =
keycode 145 =
keycode 146 =
keycode 147 =
keycode 148 =
keycode 149 =
keycode 150 =
keycode 151 =
keycode 152 =
keycode 153 =
keycode 154 =
keycode 155 =
keycode 156 =
keycode 157 =
keycode 158 =
keycode 159 =
keycode 160 =
keycode 161 =
keycode 162 =
keycode 163 =
keycode 164 =
keycode 165 =
keycode 166 =
keycode 167 =
keycode 168 =
keycode 169 =
keycode 170 =
keycode 171 =
keycode 172 =
keycode 173 =
keycode 174 =
keycode 175 =
keycode 176 =
keycode 177 =
keycode 178 =
keycode 179 =
keycode 180 =
keycode 181 =
keycode 182 =
keycode 183 =
keycode 184 =
keycode 185 =
keycode 186 =
keycode 187 = acute grave
keycode 188 = comma semicolon
keycode 189 = minus underscore
keycode 190 = period colon
keycode 191 =
keycode 192 = numbersign apostrophe
keycode 193 =
keycode 194 =
keycode 195 =
keycode 196 =
keycode 197 =
keycode 198 =
keycode 199 =
keycode 200 =
keycode 201 =
keycode 202 =
keycode 203 =
keycode 204 =
keycode 205 =
keycode 206 =
keycode 207 =
keycode 208 =
keycode 209 =
keycode 210 = plusminus hyphen macron
keycode 211 =
keycode 212 = right registered
keycode 213 = guillemotleft guillemotright
keycode 214 = masculine ordfeminine
keycode 215 = ae AE
keycode 216 = cent yen
keycode 217 = questiondown exclamdown
keycode 218 = onequarter onehalf threequarters
keycode 219 =
keycode 220 = less greater bar
keycode 221 = plus asterisk asciitilde
keycode 222 =
keycode 223 =
keycode 224 =
keycode 225 =
keycode 226 =
keycode 227 = multiply division
keycode 228 = acircumflex Acircumflex
keycode 229 = ecircumflex Ecircumflex
keycode 230 = icircumflex Icircumflex
keycode 231 = ocircumflex Ocircumflex
keycode 232 = ucircumflex Ucircumflex
keycode 233 = ntilde Ntilde
keycode 234 = yacute Yacute
keycode 235 = oslash Ooblique
keycode 236 = aring Aring
keycode 237 = ccedilla Ccedilla
keycode 238 = thorn THORN
keycode 239 = eth ETH
keycode 240 = diaeresis cedilla currency
keycode 241 = agrave Agrave atilde Atilde
keycode 242 = egrave Egrave
keycode 243 = igrave Igrave
keycode 244 = ograve Ograve otilde Otilde
keycode 245 = ugrave Ugrave
keycode 246 = adiaeresis Adiaeresis
keycode 247 = ediaeresis Ediaeresis
keycode 248 = idiaeresis Idiaeresis
keycode 249 = odiaeresis Odiaeresis
keycode 250 = udiaeresis Udiaeresis
keycode 251 = ssharp question backslash
keycode 252 = asciicircum degree
keycode 253 = 3 sterling
keycode 254 = Mode_switch
Ⅵ VB與西門子S7-300通訊
使用什麼線取決於你想怎麼通訊。
DP?MPI?還是乙太網?
你S7-300什麼型號?如果沒有乙太網的話,我建議你還是不要用乙太網,否則PLC側添加一個模塊就要8000多RMB。
DP通訊,你有CP通訊卡否?如果沒有,你只能通過MPI電纜進行通訊。
MPI電纜,西門子原裝的價格大約在1500左右,國產的也就在5,6百。
用串口控制項?你知道MPI這個非公開協議內容?
不知道的話搞到退休恐怕也搞不出來。
去找Prodave軟體,使用其中的Dll,在VB中進行調用。
非問題簡單,而是想法幼稚。
Regards
Ⅶ 如何在vmware配置linux下的mpi
虛擬機CentOS中配置MPI多節點並行計算完整版,這是一個新手教程,從一個空白的CentOS到能正常運行的基礎環境,盡量詳細寫了每個步驟
我的環境如下:
宿主機:Windows 10 Pro
虛擬機:VMware 12 + CentOS 6.6
一、 虛擬機網路配置實現多節點互訪
硬體資源有限,所以我只開了兩台虛擬機均為 Centos 6.6。
1.修改網卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 將其中內容修改如下:
DEVICE=eth0
HWADDR=00:0C:29:A0:3A:CA
TYPE=Ethernet
UUID=bf583745-f834-451c-890c-39821a590543
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.207.128
NETMASK=255.255.255.0
DNS1=192.168.207.2
將每一台虛擬機都如此配置,IPADDR是ip地址,不要重復
2.修改網關及主機名
/etc/sysconfig/network
ETWORKING=yes
HOSTNAME=node1
NTPSERVERARGS=iburst
GATEWAY=192.168.207.2
一些文章中提到還需要修改VMware的設置(關閉本地DHCP服務),實際上,Centos 中設置好後就不需要動VMware的設置了
二、 在虛擬機中添加同名用戶
在不同節點中需要有同名的用戶以方便免密碼SSH連接
node1和node2中以root用戶執行下列命令
# useradd mpiuser
三、 實現免密碼SSH登陸
當前節點為node1,用戶為mpiuser,工作目錄為 ~ 家目錄
1.生成 SSH 私鑰對
$ ssh-keygen -t rsa 一路回車就好
2.進入 .ssh 目錄
$ cd ./.ssh
3.生成authorized_keys文件
$ cp id_rsa.pub authorized_keys
4.回到mpiuser的家目錄
$ cd ~
5.建立本身的信任連接
$ ssh node1
6.設置 node2
$ ssh-keygen -t rsa 生成.ssh文件夾
$ scp node1:~/.ssh/* ./ 拷貝node1上的.ssh文件夾到node2
# scp node1:/etc/hosts /etc/hosts 拷貝node1上的hosts文件到node2,可能需要root許可權
$ ssh node2
$ ssh node1
7.如果還有其他節點,設置方法同node2
設置成功後,在任意節點執行SSH連接其他節點都不需要密碼,注意必需每個節點都有mpiuser這個用戶,之所以使用一個普通用戶,是為了避免root執行mpi程序時遇到風險。在一些mpi實現中,也不允許以root用戶執行。
四、 配置MPI運行環境
1. 下載 mpich
官方網站 http://www.mpich.org 下載其中的mpich-3.2.tar.gz
2. 解壓並進入目錄
# tar xvf mpich-3.2.tar.gz
# cd mpich-3.2
# ./configure –prefix=/usr/local/mpich
# make
# make install
3. 設置環境變數,修改 /etc/profile ,加入下面幾行代碼
PATH=$PATH:/usr/local/mpich/bin
MANPATH=$MANPATH:/usr/local/mpich/man
export PATH MANPATH
4. 使剛剛的修改生效
# source /etc/profile
5. mpi多節點配置
新建一個配置文件
# touch /usr/local/mpich/servers
修改其中內容為:
node1:2 #在node1上運行兩個進程
node2:2
如果有多個節點繼續往下寫
五、 單節點測試
將源碼包中的 examples 拷貝到 mpich 的安裝目錄
# cp -r ./examples /usr/local/mpich/
用示常式序進行測試
$ mpirun -np 4 /usr/local/mpich/examples/cpi
Process 1 of 4 is on node1
Process 0 of 4 is on node1
Process 3 of 4 is on node1
Process 2 of 4 is on node1
pi is approximately 3.1415926544231239, Error is 0.0000000008333307
wall clock time = 0.081049
得到如圖的回顯結果證明mpich的運行環境正常
六、 多節點測試
$ mpiexec -np 4 -f /usr/local/mpich/servers /usr/local/mpich/examples/cpi
Process 1 of 4 is on node1
Process 0 of 4 is on node1
Process 3 of 4 is on node2
Process 2 of 4 is on node2
pi is approximately 3.1415926544231239, Error is 0.0000000008333307
wall clock time = 0.139722
如上,在兩個節點上分別運行了兩個進程,配置過程到此結束
Ⅷ PPI通訊和MPI通訊是什麼概念
PPI是一種主從協議,CPU既可以做主站,又可以做從站,主站靠PPI協議管理與從站通訊。所有的通信程序運行在主CPU上,從站設備不需要專門的通信代碼。
MPI是一種適用於少數站點間通信的網路,多用於連接上位機和少量PLC之間近距離通信。
MPI網路通信的速率是19.2Kbit/s~12Mbit/s,MPI網路較多支持連接32個節點,較大通信距離為50M。通信距離遠,還可以通過中繼器擴展通信距離,但中繼器也佔用節點。

CPU進行數據交換的方法
基於PPI協議實現兩個CPU之間進行數據交換:
1、硬體連接
PPI通信建立在485的硬體基礎上,因此需要製作一根至少包含一對雙絞線的屏蔽線,兩端分別接DB9頭子的3腳和8腳,屏蔽層接DB9頭子的金屬外殼。
2、合理分配CPU地址
PPI通信要求PPI網路內每個CPU具有不同地址,Micro/WIN默認為0,CPU默認為2,因此建議主PLC的地址設置為2,從PLC地址依次設置為11、12、13??依次類推。
3、正確初始化
通過初始化特殊寄存器SMB30,將主CPU埠0配置為PPI主站模式,同時將數據緩存區清零。
4、正確准備數據
數據必須按照規定將相應的數據填入緩沖區,例如數據發送緩沖區為VB200,那麼VB200就是狀態字,不需要填寫,用於讀取指令執行的狀態。
5、適時調用收發指令
PPI通信指令只有兩條,分別是:網路讀和網路寫,調用也很簡單,只需要指定本次讀寫己方的埠和數據緩沖區地址。
6、正確進行指令調用
Ⅸ 請教:vb 上位機如何通過PROFIBUS-DP和西門子PLC通訊
可以的,在你的計算機上安裝CP5611卡,安裝SIMATIC.NET軟體,同時通過OPC
SEVER調用PLC數據。具體編程可以查看SIMATIC.NET的HELP。
