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系统里又是从大到小;