益旺電氣
工控愛好者
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 92 個
工控威望: 203 點
下載積分: 7058 分
在線時間: 86(小時)
注冊時間: 2010-08-15
最后登錄: 2024-08-16
查看益旺電氣的 主題 / 回貼
樓主  發(fā)表于: 2019-03-19 09:48
      信捷PLC的性價比相對來說還算是可以,現(xiàn)在眾多的順控程序很多設(shè)備都在使用,我使用也有數(shù)年之久,相對來說,XC系列的PLC,到最后的版本,也基本上該有功能也基本上有了,相對來說,通過不斷的升級,也還算穩(wěn)定。
    自去年開始,因業(yè)務(wù)需要,開始使用各種XD系列的PLC,但真的是很坑爹呀,那編程軟件可能是我目前用過所有的PLC中最垃圾的一個,也不知道他們公司的哪位大神,使用那樣的擴展模式,加一個擴展得后面加一個10000,真的是數(shù)著數(shù)字都煩,原來好好的,在加一個模塊后加100就可以了,這樣倒好,要給打號碼管都太長了,更別提輸這數(shù)字了,
    那軟件呢,注釋當中一大堆用不著的,也在當中,有時要找一個IO真的挺難找的,不知道用哪種PLC,里面可用的就顯示,這樣不讓人家好搞多了,還有就是那插入一行,與刪除一行,得非常小心,因為你稍不注意,乖乖,它就得轉(zhuǎn)圈圈了,死機了,沒保存,不好意思,它自動備份后寫的那部分程序,你得重來了。
    還有就是發(fā)現(xiàn)那軟件有一個問題,在時實性較高的東西,有時并不會從上往下的順序來的,有時得人為的增加延時等待。希望信捷的研發(fā)中心人員,能夠重視這些問題,我們是很希望國產(chǎn)的很好,也很愿意支持國貨,但得不影響自己工程的前提下呀。在某些方面,多學(xué)習(xí)一下國際上知名品牌的長處,對自己的產(chǎn)品還是很有益處的。
   我現(xiàn)在基本上,實時性高一點的地方還是使用國際知名品牌。一些順控制要求不高的地方使用一下信捷,我很支持國貨,但是目前為止,能用XC就盡量用XC,XD目前為止還是很不穩(wěn)定。什么時候穩(wěn)定時再用吧。希望信捷公司人員看到后,能知道怎么提升。讓支持你們的人不會太失望。
本帖最近評分記錄:
  • 下載積分:+1(qj_wgx) 除了信捷,不還有其它的 ..
  • 下載積分:+1(lizhendong) 感謝分享!
  • 下載積分:+1(藍色衛(wèi)兵) 對與一個剛要接觸而且以 ..
  • 工控自動化設(shè)備PLC,觸摸屏,單片機程序開發(fā)設(shè)計 ,PCB設(shè)計,生產(chǎn)與銷售
    bifujian110
    羊月薪5000,打算用30萬建一個窩,老虎不允許,說私自建就
    級別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 384 個
    工控威望: 2120 點
    下載積分: 37373 分
    在線時間: 147(小時)
    注冊時間: 2017-02-06
    最后登錄: 2023-04-06
    查看bifujian110的 主題 / 回貼
    1樓  發(fā)表于: 2019-03-21 10:24
    信捷用起來感覺真的不方便, 剛好公司最近買了幾臺設(shè)備是用于信捷PLC的, 目前要開發(fā)上位機, 感覺信捷的寄存器什么的太多了, 寫了個地址分析的函數(shù)超長啊
    public override ushort AnalyzeAddress(string strAddress)
    {
       Address address = Address.GetAddress(strAddress);
       if (address == null) return 0;
       switch (address.Type.ToLower())
       {
          case "m": if (address.Number <= 20480) return address.Number; break;
          case "x":
             if (address.Number <= 77) return (ushort)(address.Number + 20480);
             else if (address.Number <= 10000 && address.Number <= 10077) return (ushort)(address.Number + 20736);
             else if (address.Number <= 10100 && address.Number <= 10177) return (ushort)(address.Number + 20800);
             else if (address.Number <= 10200 && address.Number <= 10277) return (ushort)(address.Number + 20864);
             break;
          case "y":
             if (address.Number <= 77) return (ushort)(address.Number + 24576);
             else if (address.Number <= 10000 && address.Number <= 10077) return (ushort)(address.Number + 24832);
             else if (address.Number <= 10100 && address.Number <= 10177) return (ushort)(address.Number + 24896);
             else if (address.Number <= 10200 && address.Number <= 10277) return (ushort)(address.Number + 24960);
             break;
          case "s": if (address.Number < 8000) return (ushort)(address.Number + 28672); break;
          case "sm": if (address.Number < 4096) return (ushort)(address.Number + 36864); break;
          case "t": if (address.Number < 4096) return (ushort)(address.Number + 40960); break;
          case "c": if (address.Number < 4096) return (ushort)(address.Number + 45056); break;
          case "et": if (address.Number < 40) return (ushort)(address.Number + 49152); break;
          case "sem": if (address.Number < 128) return (ushort)(address.Number + 49280); break;
          case "hm": if (address.Number < 6144) return (ushort)(address.Number + 49408); break;
          case "hs": if (address.Number < 1000) return (ushort)(address.Number + 55552); break;
          case "ht": if (address.Number < 1024) return (ushort)(address.Number + 57600); break;
          case "hc": if (address.Number < 1024) return (ushort)(address.Number + 58624); break;
          case "hsc": if (address.Number < 40) return (ushort)(address.Number + 59648); break;
          case "d": if (address.Number < 20480) return (ushort)(address.Number + 28672); break;
          case "id":
             if (address.Number < 100) return (ushort)(address.Number + 20480);
             else if (address.Number <= 10000 && address.Number <= 10099) return (ushort)(address.Number + 20736);
             else if (address.Number <= 10100 && address.Number <= 10199) return (ushort)(address.Number + 20836);
             else if (address.Number <= 10200 && address.Number <= 10299) return (ushort)(address.Number + 20936);
             break;
          case "qd":
             if (address.Number < 100) return (ushort)(address.Number + 24576);
             else if (address.Number <= 10000 && address.Number <= 10099) return (ushort)(address.Number + 24832);
             else if (address.Number <= 10100 && address.Number <= 10199) return (ushort)(address.Number + 24932);
             else if (address.Number <= 10200 && address.Number <= 10299) return (ushort)(address.Number + 25032);
             break;
          case "sd": if (address.Number < 4096) return (ushort)(address.Number + 28672); break;
          case "td": if (address.Number < 4096) return (ushort)(address.Number + 32768); break;
          case "cd": if (address.Number < 4096) return (ushort)(address.Number + 36864); break;
          case "etd": if (address.Number < 40) return (ushort)(address.Number + 40960); break;
          case "hd": if (address.Number < 6144) return (ushort)(address.Number + 41088); break;
          case "hsd": if (address.Number < 1024) return (ushort)(address.Number + 47232); break;
          case "htd": if (address.Number < 1024) return (ushort)(address.Number + 48256); break;
          case "hcd": if (address.Number < 1024) return (ushort)(address.Number + 49280); break;
          case "hscd": if (address.Number < 40) return (ushort)(address.Number + 50304); break;
          case "fd": if (address.Number < 8192) return (ushort)(address.Number + 50368); break;
          case "sfd": if (address.Number < 6000) return (ushort)(address.Number + 58560); break;
          case "fs": if (address.Number < 48) return (ushort)(address.Number + 62656); break;
          default:
             break;
       }
       return ushort.MaxValue;
    }
    本帖最近評分記錄:
  • 下載積分:+1(healer_1) 大佬級的才用C來寫吧