wenluderen
人人為我我為人人
級別: 略有小成
|
隨著工控行業的發展 ,對于數據的處理越來越多,而PLC僅僅擅長離散量邏輯運算。所以就需要PC平臺。 PC 和PLC如何建立數據連接? 串口顯然是不夠快的,所以此時引入以太網。 ******** 那么問題來了,如果基于以太網實現PC 和PLC的通訊呢? 這個時候三菱給出的解決方案是 MX Component *** 目前最新版 2018 04 30 日更新 4.16S 官方下載地址是:https://pan.baidu.com/s/1nVdr1gGRfeq3_WA8pjGwdw 密碼kbuw 2020年3月更新為4.19: https://mitsubishielectric.yangben.cn/assets/detail/5b7ce314b2dcac27e0b97d0c |
---|---|
本帖最近評分記錄: |
wenluderen
人人為我我為人人
級別: 略有小成
|
關于 對系統的要求,部分網友說 不支持64位系統,我以前試過也是不支持的,但是現在這個4.16S的版本 有可能是支持的。 關于序列號:序列號:117-570766844(測試可用) https://blog.csdn.net/han_better/article/details/80534913 可以按照上面的鏈接按照 和配置。 但是需要特別說明的是 1)必須關閉VSvisual studio 2)必須關閉三菱的軟件 3)啟動MX Component 必須是管理員權限 ***************** 下圖是我在WIN7 64位系統 下測試的結果 [ 此帖被wenluderen在2018-07-07 14:42重新編輯 ] |
---|---|
|
wenluderen
人人為我我為人人
級別: 略有小成
|
必須要提四個文件。 按照MX component之后 在VS里面是無法直接使用的。 我查看了范例發現以下路徑下四個動態庫很關鍵 C:\MELSEC\Act\Samples\Vb.NET\ModemSample2010\ModemSample2010\obj\Debug\AxInterop.ActSupportMsgLib.dll C:\MELSEC\Act\Samples\Vb.NET\ModemSample2010\ModemSample2010\obj\Debug\AxInterop.ActUtlTypeLib.dll C:\MELSEC\Act\Samples\Vb.NET\ModemSample2010\ModemSample2010\obj\Debug\Interop.ActSupportMsgLib.dll C:\MELSEC\Act\Samples\Vb.NET\ModemSample2010\ModemSample2010\obj\Debug\Interop.ActUtlTypeLib.dll 咱們照壺畫瓢 **** 引用-瀏覽 。將這個四個動態庫添加 [ 此帖被wenluderen在2018-07-07 16:21重新編輯 ] |
---|---|
|
wenluderen
人人為我我為人人
級別: 略有小成
|
折騰了好久,終于用VB.net 實現代碼復寫 需要特別說明是: 1)那個動態庫 必須也在Debug文件里有,不然練創建Form都無法實現 2)TCP MODUBUS 也是下面測試的方式 |
---|---|
|
wenluderen
人人為我我為人人
級別: 略有小成
|
OPC的速度似乎非常慢,而且收費。以前用Labview自帶的OPC訪問歐姆龍的CP1H 就是很慢。大致200MS 甚至是1000MS 至于OPC UA 不清楚,沒有用過 后續我研究下 |
---|---|
|
wenluderen
人人為我我為人人
級別: 略有小成
|
使用三菱官方給出的解決方案 ,這樣可以讓最后的結果是最好的。 另外一個網口(CPU內置的那個)可以同時做MODUBS 和 CC-LINK IE 這兩種模式通訊嗎? |
---|---|
|
wenluderen
人人為我我為人人
級別: 略有小成
|
關于函數: lReturnValue = AxActUtlType1.Connect() lReturnValue = AxActUtlType1.Open() **** 這里是具體的對CPU內部的內存地址操作,讀寫之類的 **** AxActUtlType1.Close() AxActUtlType1.Disconnect() *************** 關于三菱給出的范例 [ 此帖被wenluderen在2018-07-12 14:10重新編輯 ] |
---|---|
|
wenluderen
人人為我我為人人
級別: 略有小成
|
復寫的代碼 TestPLC.zip (162 K) 下载次数:210 |
---|---|
|
wenluderen
人人為我我為人人
級別: 略有小成
|
Dim iReturnCode As Integer 'Return code Dim szDeviceName As String = "" 'List data for 'DeviceName' Dim iNumberOfDeviceName As Integer = 0 'Data for 'DeviceSize' Dim sharrDeviceValue() As Short 'Data for 'DeviceValue' '軟元件名 szDeviceName = String.Join(vbLf, txt_DeviceNameRandom.Lines) '寫入點數 If GetIntValue(txt_DeviceSizeRandom, iNumberOfDeviceName) = False Then 'If failed, this process is end. Exit Sub End If '寫入的軟元件值 ReDim sharrDeviceValue(iNumberOfDeviceName - 1) If GetShortArray(txt_DeviceDataRandom, sharrDeviceValue) = False Then 'If failed, this process is end. Exit Sub End If '軟元件的隨機寫入 iReturnCode = AxActUtlType1.WriteDeviceRandom2(szDeviceName, iNumberOfDeviceName, sharrDeviceValue(0)) |
---|---|
|
wenluderen
人人為我我為人人
級別: 略有小成
|
雖然說MX component可以運行仔位系統下,但是他的程序還是32位的。 你可以通過任務管理器看到, 程序名字后面有個*32 所以你是無法在64位的編譯環境下,調用32位的DLL。 ××× |
---|---|
|