1.西門子和三菱的幾個區別(上位只關心的通信層面):
1. 西門子PLC通信端口固定102,可是能夠鏈接多個PC端(客戶端),三菱PLC通信端口能夠自定義,最多好像8個,可是每一個端口只能鏈接一個客戶端;
2. 二者的讀寫指令相似,可是西門子在端口鏈接的時候,要作兩個初始化指令交互後,才能正常讀寫處理; 若是中途有錯誤格式的指令,可能致使端口鏈接斷開;
3. 三菱PLC主要是以字爲單位讀寫的;西門子主要是以字節爲單位讀寫; 因此三菱相鄰兩個地址相差16bit,西門子相鄰兩個地址相差8bit;
4.三菱PLC的數據塊,通常最小處理單位就是字,不多拆成bit處理(或者把整個字看成0,1布爾類型處理,可是這樣有點太浪費了),
並且上位PC端只能用字去讀寫,沒法按位讀寫,若是真的要用bit處理,通常就用M點;
西門子這塊比較靈活,能夠按bit或byte去讀寫;若是按byte,標識的樣子是 B10.B99 ;若是是bit,標識的樣子是 B10.X99.0~DB10.X99.7
5.三菱PLC的數據塊是固定的,好比D0~D6000; 西門子的數據塊是經過西門子的編程工具初始化的,也就是說,你能夠把一片地址定義成DB10,也能夠定義成DB50;
通俗的說:三菱PLC的數據庫偏硬; 西門子的偏軟,它的地址是映射的虛擬地址;
6. 三菱的數據位是從小到大的,好比某個雙字,低位在前,高位在後;這是針對數字類型,可是若是是ascii碼,由於一個字有兩個字節,這時候卻又是反的;
因此在三菱裏面對數字和字符類型,要分兩種順序處理;
西門子是從大到小的;這兩種方法有什麼區別呢; 簡單來講:從小到大主要是計算機思考的方式; 從大到小是人的思考方式;
好比655539,它等於65536+3,轉換成16進制是0x00010003 須要兩個字 , 若是在三菱裏存儲的順序就是先低位3,再高位1,也就是 03 00 01 00;
在西門子裏存儲的順序從高到低,也就是00 01 00 03;
就像oracle在的數據在windows系統裏的數據存儲順序是從小到大,在liunx系統裏又是從大到小;數據庫