<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      讓工控組態開發變得更簡單

      讓每一位PLC工程師都會使用上位機做工控組態,讓所有企業都能使用到免費的工控組態軟件。

      博客園 首頁 新隨筆 聯系 訂閱 管理

      【C#上位機二次開發文檔】

      下面是針對那些有一定C#基礎,需要做二次開發的上位機工程師,整理的一些C#操作PLC的方法。
      PCHMI.PClass.SystemRun;//判斷控件是否啟動完成,只有啟動完成之后才可以使用操控PLC的指令。
      PCHMI.PClass.Login();//權限登錄,輸入密碼
      PCHMI.PClass.UpPwd();//權限修改,修改密碼
      PCHMI.PClass.IsPlcLink(0);//判斷通訊狀態,"0"表示第一個PLC
      PCHMI.PClass.NowAuthority = 1;//獲取或設置當前權限
      PCHMI.PClass.Language = 0; //獲取或設置當前使用的語言
      PCHMI.CONFIG.PLC_OFF[0]=True//關閉第一個PLC通訊
      PCHMI.UpConfig.ReBoot()//重啟程序,可以用在長時間通訊超時,無法恢復的情況下使用。
      new PCHMI.UpConfig().ShowDialog();//調用通信配置窗口
      new PCHMI.PClass().Speech("你好!");//將文字轉語音播放出來
      new PCHMI.MODBUS監控豎屏().Show();//打開Modbus-Tcp服務器監控窗口
      【文件讀寫】
      new PCHMI.PClass().WFile(@"D:\PLCIP.TXT", "123");//將字符串"123"保存到指定的文件
      new PCHMI.PClass().RFile(@"D:\PLCIP.TXT");//從指定的文件讀取內容
      【配方功能】
      new PCHMI.配方().CALL_TECH("配方文件名", "配方名");//從指定的配方文件調用配方
      new PCHMI.配方().SAVE_TECH("配方文件名"); //保存指定配方文件名的配方
      new PCHMI.配方().DEL_TECH("配方文件名"); //刪除指定配方文件名的配方
      【打印功能】
      new PCHMI.PRINT().PrintControl(面板1, "", true);//打印控件里的畫面 1、表控件名 2、打印機驅動名 3、是否預覽
      PCHMI.PRINTDGV.Print(數據表1.GridView,"","");//打印表格 1、表控件名 2、打印機驅動名 3、標題
      PCHMI.PRINTDGV.PrintPreview(數據表1.GridView,"","");//打印預覽表格 1、表控件名 2、打印機驅動名 3、標題

      【數據庫操作】
      里面使用的是SQL標準語法,不了解的先到網上學習SQL語法
      //創建一個表
      new PCHMI.DATABASE().SQL_EXECUTE(0, "CREATE TABLE TAB(A INTEGER,B INTEGER)");
      //添加一條記錄到數據庫
      new PCHMI.DATABASE().SQL_EXECUTE(0, "INSERT INTO [TAB$] VALUES(100,200)");
      //刪除A=100的這條記錄
      new PCHMI.DATABASE().SQL_EXECUTE(0, "DELETE FROM [TAB$] WHERE A=100");
      //修改字段內容,記得加條件,不然、所有記錄一起修改
      new PCHMI.DATABASE().SQL_EXECUTE(0, "UPDATE [TAB$] SET A=50,B=60");
      //查詢第一條記錄
      DataTable DTAB=new PCHMI.DATABASE().SQL_SELECT(0, "SELECT TOP 1 * FROM [TAB$]");
      //DataTable轉換成List<string[]>類型
      List<string[]> VAL = new PCHMI.DATABASE().DTAB_LISTSTRs(DTAB);

      【讀寫寄存器】
      5.0之后的版本盡量使用下面的方法,這些方法可以支持標簽地址,使用標簽地址的時候前面需要加"U:",之前的方法可能在后面的版本中逐漸取消掉。

      //寫寄存器(寫U地址用下面的SET方法,使用PLC地址請使用后面的SEND方法)
      new PCHMI.VAR().SET_BIT(0,"U0.0", 1); //位寫入
      new PCHMI.VAR().SET_WORD(0,"U00", 1); //字寫入
      new PCHMI.VAR().SET_WORDs(0, "U00", new UInt16[]{ 1, 2, 3 });//多字寫入
      new PCHMI.VAR().SET_DWORD(0, "U00", 1);//雙字寫入
      new PCHMI.VAR().SET_LWORD(0, "U00", 1);//四字寫入
      new PCHMI.VAR().SET_INT16(0, "U00", 1);//INT16寫入
      new PCHMI.VAR().SET_INT32(0, "U00", 1);//INT32字寫入
      new PCHMI.VAR().SET_INT64(0, "U00", 1);//INT64字寫入
      new PCHMI.VAR().SET_F32(0, "U00", 0.1f);//F32字寫入
      new PCHMI.VAR().SET_STRING(0, "U00", "HELLO WORLD!");//寫入字符串

      //讀寄存器(讀寄存器,如果使用了在界面中從未使用過的地址,第一次讀取系統需要注冊,可能讀取上來的數據為空。之后再讀取就有數據了。如果不想要第一次讀取的空數據,可以在窗口的LOAD事件里在啟動代碼的后面對地址讀取一次,下次再讀取相同的地址就不會為空數據了。)
      new PCHMI.VAR().GET_BIT(0, "D0.0");//讀位
      new PCHMI.VAR().GET_INT16(0, "D00");//讀INT16
      new PCHMI.VAR().GET_INT32(0, "D00");//讀INT32
      new PCHMI.VAR().GET_UINT16(0, "D00");//讀UINT16
      new PCHMI.VAR().GET_UINT32(0, "D00");//讀UINT32
      new PCHMI.VAR().GET_F32(0, "D00");//讀F32
      new PCHMI.VAR().GET_F32s(0, "D00",10);//讀多個F32
      new PCHMI.VAR().GET_STRING(0, "D00", 10);//讀字符串
      new PCHMI.VAR().GET_SIEMENS_STRING(0, "D00", 10);//讀西門子字符串
      new PCHMI.VAR().GET_INT16s(0, "D00", 10);//讀多個INT16
      new PCHMI.VAR().GET_INT32s(0, "D00", 10);//讀多個INT32
      new PCHMI.VAR().GET_UINT16s(0, "D00", 10);//讀多個UINT16
      new PCHMI.VAR().GET_UINT32s(0, "D00", 10);//多個讀UINT32

      //控制PLC寄存器
      new PCHMI.VAR().SEND_CTRL(0, "D0.0", "置位", "");
      new PCHMI.VAR().SEND_CTRL(0, "D0.0", "復位", "");
      new PCHMI.VAR().SEND_CTRL(0, "D0.0", "瞬動", "");
      new PCHMI.VAR().SEND_CTRL(0, "D0.0", "半秒瞬動", "");
      new PCHMI.VAR().SEND_CTRL(0, "D0.0", "一秒瞬動", "");
      new PCHMI.VAR().SEND_CTRL(0, "D0.0", "反轉", "");
      new PCHMI.VAR().SEND_CTRL(0, "D00", "字加", "1");
      new PCHMI.VAR().SEND_CTRL(0, "D00", "字減", "1");
      new PCHMI.VAR().SEND_CTRL(0, "D00", "雙字加", "1");
      new PCHMI.VAR().SEND_CTRL(0, "D00", "雙字減", "1");
      new PCHMI.VAR().SEND_CTRL(0, "D00", "字寫入", "1");
      new PCHMI.VAR().SEND_CTRL(0, "D00", "雙字寫入", "1");
      new PCHMI.VAR().SEND_CTRL(0, "D00", "多字寫入", "1,2,3");
      new PCHMI.VAR().SEND_CTRL(0, "D00", "字符串寫入", "HELLO WORLD!");

      //寫入PLC寄存器
      new PCHMI.VAR().SEND_UINT16s(0, "D00", new UInt16[] { 1, 2, 3 });//向連續PLC地址D00寫入:1,2,3
      new PCHMI.VAR().SEND_UINT32s(0, "D00", new UInt32[] { 1, 2, 3 });//向連續PLC地址D00寫入:1,2,3
      new PCHMI.VAR().SEND_F32s(0, "D00", new float[] { 1.1f, 2.1f, 3.1f });//向連續PLC地址D00寫入:1.1,2.1,3.1

      new PCHMI.VAR().SEND_UINT16s(0, "D00", new UInt16[] { "1", "2", "3" });//向連續PLC地址D00寫入:1,2,3
      new PCHMI.VAR().SEND_UINT32s(0, "D00", new UInt32[] { "1", "2", "3" });//向連續PLC地址D00寫入:1,2,3
      new PCHMI.VAR().SEND_F32s(0, "D00", new float[] { "1.1", "2.1", "3.1" });//向連續PLC地址D00寫入:1.1,2.1,3.1

      new PCHMI.VAR().SEND_BIT(0, "D0.0", 1);//發送位
      new PCHMI.VAR().SEND_INT16(0, "D00", 1);//發送INT16
      new PCHMI.VAR().SEND_UINT16(0, "D00", 1);//發UINT16
      new PCHMI.VAR().SEND_INT32(0, "D00", 1);//發送INT32
      new PCHMI.VAR().SEND_UINT32(0, "D00", 1);//發送UINT32
      new PCHMI.VAR().SEND_F32(0, "D00", 0.1f);//發送F32
      new PCHMI.VAR().SEND_STRING(0, "D00", "HELLO WORLD!");//發送字符串
      new PCHMI.VAR().SEND_SIEMENS_STRING(0, "D00", "HELLO WORLD!");//發送西門子字符串

      //控制PLC寄存器
      new PCHMI.VAR().SEND_VAL(0, "D0.0", "BIT", "1");
      new PCHMI.VAR().SEND_VAL(0, "D00", "INT16", "-1");
      new PCHMI.VAR().SEND_VAL(0, "D00", "INT32", "-1");
      new PCHMI.VAR().SEND_VAL(0, "D00", "UINT16", "1");
      new PCHMI.VAR().SEND_VAL(0, "D00", "UINT32", "1");
      new PCHMI.VAR().SEND_VAL(0, "D00", "F32", "0.1");
      new PCHMI.VAR().SEND_VAL(0, "D00", "STRING", "HELLO WORLD!");
      new PCHMI.VAR().SEND_VAL(0, "D00", "SIEMENS_STRING", "HELLO WORLD!");

      posted on 2021-07-16 15:49  工控極客  閱讀(5009)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 妇女自拍偷自拍亚洲精品| 日韩深夜免费在线观看| 九九久久人妻一区精品色| 亚洲一区二区精品另类| 无码日韩精品一区二区人妻| 美女午夜福利视频一区二区| 定州市| 国产av一区二区亚洲精品| 亚洲欧洲日韩国内精品| 成人亚洲av免费在线| 末发育娇小性色xxxxx视频| 国产初高中生粉嫩无套第一次| 亚洲欧美综合人成在线| 久久人人97超碰国产精品| 久久久国产成人一区二区 | 8AV国产精品爽爽ⅤA在线观看| 久久精品一偷一偷国产| 欧美老熟妇喷水| 精品日韩精品国产另类专区| 又爽又黄又无遮挡的激情视频| 亚洲男人第一无码av网| 国产综合精品一区二区三区| 无码欧美毛片一区二区三| 无码日韩人妻精品久久| 久久综合激情网| 一本大道av人久久综合| 定州市| 鲁一鲁一鲁一鲁一澡| 欧美野外伦姧在线观看| 性奴sm虐辱暴力视频网站 | 欧美乱大交xxxxx疯狂俱乐部| 亚洲国产美女精品久久久| 久久国产免费直播| 亚洲欧美日韩综合一区在线 | 亚洲欧美中文日韩v在线97| 一二三四区无产乱码1000集| 91孕妇精品一区二区三区| 日韩不卡二区三区三区四区| 久久99精品久久久学生| 日韩精品中文字幕人妻| 亚洲综合色一区二区三区|