男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

當前位置:機電之家首頁 >> PLC技術>> PLC基礎 >> PLC入門 >> RsLogix5000關于第三方模塊MVI56的編程開發實例
RsLogix5000關于第三方模塊MVI56的編程開發實例

在做濟鋼項目的時候遇到一個很大的挑戰,第一濟鋼要求采用AB的RsLogix5000系列,第二該系統需要聯入本公司自己生產的紅外測位系統。由于我們的系統的通信協議是內部協議,而AB的PLC不像西門子的200系列的PLC可以對自由口編程,可以很方便的獲取到數據,而AB的則不然,目前AB已經不在生產第三方接口的模塊,而有其合作的ProSoft公司專門生產第三方模塊。ProSoft生產的模塊有很多種,由于沒有經驗,很不幸,我們選擇的是MVI56的模塊,而這個模塊卻是全部自由編程,不含有任何默認協議。去退貨確要報價的30%作為補償,八個模塊要賠好幾萬,唉!... ...

      剩下的事,只有研究了,花了五千銀子,請了一個“專家”,對AB的產品非常熟。一星期后,終于有點眉目了,原來這個模塊就是一個典型的嵌入式系統,相當一個帶三個串口的386的電腦,操作系統為小型的DOS系統(TINY DOS),用C++為其開發程序。對DOS C我是非常熟的,可是如何與AB通信確不熟悉,幸好那個“專家”對此比較熟,我們二者一結合,果然成功了--效果出奇的好,不用AB PLC編一行代碼,就可以實現把數據寫入到變量區。下面是PLC的配置界面:

//基于 TINY DOS 的C++ 的核心通信程序

//*************************************************************************
//**函 數 名:Com_GetWHData
//**輸    入:intAddr  - 紅外標尺地址
//**        :intState - 標尺狀態 0~9  -1 表示校驗錯誤
//**輸    出:無
//**功能描述:獲取紅外標尺的信息
//**全局變量:
//**調用模塊:
//**作    者:葉帆
//**日    期:2004-11-24 16:56:57
//**修 改 人:
//**日    期:
//**版    本:V1.0.0
//*************************************************************************
void Com_GetWHData(WORD *intAddr,WORD *intState)
{
    BYTE ch;
    BYTE bytData[6];
    BYTE bytFlag=0;
    BYTE bytNum=0;

    while(bytNum<7)
    {
 if (MVIsp_Getch(Commport,&ch,1000) != MVI_SUCCESS)
 {
   *intAddr=0;
   *intState=9;
   return;
 }
 if(bytFlag==1)
 {
    bytData[bytNum++]=ch;
 }

 if(ch==0xAC && bytNum==0)
 {
   bytFlag=1;    //開始接收
 }

    }

    //正副本校驗
    if(bytData[0]==bytData[1] && bytData[2]==bytData[3] && bytData[4]==bytData[5])
    {
 //地址信息
 *intAddr=(bytData[0]>>4)*(WORD)10000+(bytData[0] & 0x0f)*(WORD)1000+(bytData[2]>>4)*(WORD)100+(bytData[2] & 0x0f)*(WORD)10+(bytData[4]>>4);
 //狀態信息
 *intState=(bytData[4] & 0x0f);
    }
    else
   {
 *intAddr=0;
 *intState=0xFF;
    }

}


//*************************************************************************
//**函 數 名:ProcessCommand
//**輸    入:無
//**輸    出:無
//**功能描述:命令處理
//**全局變量:
//**調用模塊:
//**作    者:葉帆
//**日    期:2004-11-24 16:56:57
//**修 改 人:
//**日    期:
//**版    本:V1.0.0
//*************************************************************************
int ProcessCommand(void)
{
    WORD intAddr;
    WORD intState;
    WORD intData[2];

    //讀取紅外標尺信息
    Com_GetWHData (&intAddr,&intState);

   //MVIbp_SetUserLED(handle, MVI_LED_USER1, MVI_LED_STATE_OFF);

    //讀取背板數據(注意,AB PLC在配置模塊時,輸出緩沖區的大小必須為0)
    if (MVI_SUCCESS == MVIbp_ReadOutputImage(handle, intData, 0, 2))
    {

     //數據改變或有效才寫入數據
     if (intState!=0xFF && (intData[0]!=intAddr ||intData[1]!=intState))
     {
        intData[0]=intAddr;
        intData[1]=intState;

        if (MVI_SUCCESS !=  MVIbp_WritebbbbbImage(handle,intData, 0, 2))
        {
     return(0);     //原來為1,現改為0  2005年6月8日
        }

        //MVIbp_SetUserLED(handle, MVI_LED_USER1, MVI_LED_STATE_ON);
     }

    }
    return(0);
}

------------------------------------------------------------
目前我敢說,只要還是基于這種模塊,只要知道協議,我就可以實現AB PLC與第三方模塊的通信。其實我也這樣做了,我用業余時間已經實現了 Modbus Rtu協議,實際測試后,效果不錯! 

作者:未知 點擊:1053次 [打印] [關閉] [返回頂部]
本文標簽:RsLogix5000關于第三方模塊MVI56的編程開發實例
* 由于無法獲得聯系方式等原因,本網使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《RsLogix5000關于第三方模塊MVI56的編程開發實例》相關權利人與機電之家網取得聯系。
電子樣本

SN系列樣冊
:鞏經理
:13915946763
:南京塞姆泵業有限公司
個人求購

王經理 【求購】  西湖輪胎  2026-3-20
蘇紅慶 【求購】  工業除濕機  2026-3-20
金喜 【求購】  線纜  2026-3-20
林杰 【求購】  自粘結鐵芯  2026-3-20
任建波 【求購】  鋰電鉆  2026-3-20
劉經理 【求購】  吊具電纜總...  2026-3-20
潘梟 【求購】  高強鋼焊絲  2026-3-19
李經理 【求購】  丹弗斯液壓...  2026-3-18
VIP公司推薦

主站蜘蛛池模板: 乡宁县| 磴口县| 安多县| 城市| 新安县| 三河市| 堆龙德庆县| 寿光市| 许昌县| 遵义市| 东兰县| 习水县| 富蕴县| 成武县| 布尔津县| 华阴市| 昌邑市| 达拉特旗| 海门市| 九龙县| 新乡县| 柯坪县| 铜鼓县| 西藏| 尚义县| 岱山县| 峨眉山市| 洪洞县| 稷山县| 余姚市| 阿城市| 博野县| 凤凰县| 商河县| 梓潼县| 梨树县| 北海市| 四川省| 方城县| 梨树县| 抚远县|