本帖最后由 qingyun 于 2016-12-2 10:36 编辑

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

2.报文的基本格式:

2.1  第1和第2个字节是:固定报文头03 00,这里我们就用到三种报文: a.初始化 b. 读 c.写,都是这种格式;

2.2  第3和第4个字节是:整个报文的长度;

其它部分就是各种报文的个性化处理了;

下面分析大量报文的案例进行规律分析,为了便于对照,每种都用1200 和300 两种对照demo显示:

3.初始化报文

初始化报文分两个交互;

3.1 交互一

西门子1200:

PC发出报文 ( [A18]=0x01 =CPUSlot)

03 00  00 16 11 E0 00 00         00 01  00 C1 02 01 00 C2

02 01 01(cpuslot) C0 01 09

PLC回复报文( B[10]=0x06 可能 是西门子的小型号  B[22]=0x01=CPUSlot)

03 00 00 16 11 D0 00 01        00 06 00 C0 01 09 C1 02

01 00 C2 02 01 01 (cpuslot)

西门子300:

PC发出报文 ( A[18]=0x02 =CPUSlot)

03 00  00 16 11 E0 00 00         00 01  00 C1 02 01 00 C2

02 01 02(cpuslot) C0 01 09

PLC回复报文 (B[10]=0x04 可能 是西门子的小型号  B[22]=0x0=CPUSlot)

03 00 00 16 11 D0 00 01        00 04 00 C0 01 09 C1 02

01 00 C2 02 01 02

opc 对 1200 和 300 不用配置的不同点,就一个地方:前者 CPUSlot = 1 ,后者CPUSlot = 2;

所以可以摸索规律是:

a.pc发起第一个初始化报文的时候,第18个字节标识了CPUSlot ;

b.plc回复报文和读取报文长度一样都是22个字节长度;

c.plc回复报文的最后一个字节也是CPUSlot ,这个可以用来校验;

d. plc回复的第10个字节一个是06,一个是04,这个好像是小型号的区别;

细节摸索下来:1200该字节是06,314是04,315是03;咱写程序的时候,就不要考虑这个来校验了;

3.2交互二

PC发出报文

03 00 00 19 02 F0 80 32    01 00 00 FF FF 00 08 00

00 F0 00 00 01 00 01 07     80

PLC回复报文

03 00 00 1B 02 F0 80 32     03 00 00 FF FF 00 08 00

00 00 00 F0 00 00 01 00     01 00 F0

第二个初始化报文交互,通过1200 和314,315的对比,发现居然完全没有任何区别;

所以我们可以把这个交互完全固话;

到此,整个初始化处理就算结束了,正常在设计架构的时候,可以这么实现:

在ClentSocket的onConnect(即正常连接上)的瞬间,pc给plc发起第一个初始请求,得到回复后(为了简单,就仅仅判断长度为22即可);

立刻发起第二个固定的初始话请求,得到长度为24的报文后,就通过一个布尔变量通知整个系统可以正常读写;

西门子plc与oracle报文,西门子PLC以太网 通讯协议 解析相关推荐

  1. linux系统读取plc状态,Linux系统下上位机通讯协议及PLC冗余系统组态-工业支持中心-西门子中国...

    最近要做一套高可靠性的自动化控制系统,而且上位机(PC)要采用Linux系统.有一些组网的问题想请教大家.(第一次用西门子PLC,可能问的问题不够清晰,见谅)感谢大家的耐心回答. 图1中: 1. PC ...

  2. 西门子smart200以太网通讯协议

    西门子smart200具体的通讯文档在网上或者官网我都没有找到(哪位大仙有请给我留言发个感激不尽),本人是通过监听控制软件分析出其中的通讯协议. 连接是通过TCP/IP协议,我一般喜欢用Java写测试 ...

  3. 西门子S7以太网通讯协议

    S7以太网协议属于TCP/IP协议族的一种,下图为S7以太网协议在ISO-OSI参考模型中的位置. 通过WireShark抓包,可以看出S7以太网协议的模型: ISO-OSI参考模型.TCP/IP模型 ...

  4. 最全工业以太网通讯协议

    工业以太网及工业自动化连接器的接线方式主要根据设备的协议来确定的,工业以太网和工业自动化主要有:Ethernet/以太网,CANopen,Devicenet,PROFIBUS,INTERBUS,PRO ...

  5. 西门子PLC1500以太网通讯协议分析

    初始化1500,192.168.0.1,端口:102 1.初始化连接 to:   03 00 00 16 11 E0 00 00 00 01 00 C1 02 01 00 C2 02 01 01 C0 ...

  6. 西门子s7-200smart PLC通讯协议(TCP)

    西门子s7-200smart PLC通讯协议(TCP) 由于网上找到的大部分指令解析资料都是以1200.300 等为主的指令,并未见到200smart系列,且恰巧项目需要与该plc通讯读写数据.虽然找 ...

  7. 西门子S7200/300/400以太网通讯处理器选型

    北京华科远创科技有限研发的远创智控ETH-YC模块适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控840D.840DSL.合信.亿维PLC的PPI/MPI/P ...

  8. 西门子200smart与3台施耐德ATV71变频器通讯程序

    西门子200smart与3台施耐德ATV71变频器通讯程序 可靠稳定,程序自动走完Drivecom流程,解决施耐德ATV71变频器断电重启后,自准备工作,无需人为准备. 器件:西门子s7-200sma ...

  9. DNS传输协议解析!pcap报文中的域名获取

    回想一下,当我们想访问谷歌的时候,通常输入域名(网址):https://www.google.com,其实这就是一个域名. DNS 解析过程涉及将主机名(例如 https://www.google.c ...

最新文章

  1. 好程序员web前端技术分享媒体查询
  2. 《计算机网络课程设计(第2版)》——3.4节课程设计分析
  3. java函数式 new_java8简单入门--函数式接口 @FunctionalInterface
  4. yelee主题博客四周变透明
  5. continue break return的区别
  6. windows安装python2.7_Windows下安装python2.7及科学计算套装
  7. C++ 引用计数技术简介(1)
  8. python模拟登录人人
  9. LC60 Permutation Sequence
  10. 【工具分享】AWVS 13 Linux版
  11. 最近火爆的美团饿了么外卖cps分销裂变小程序搭建及推广秘籍(附搭建源码)
  12. 姓名: 张轩瑞(小名happy) 性别: 男 年龄:3周岁 走失时间: 2018年7月1日下午4:30 家属电话:18735352768
  13. laravel 分页 + 分页的样式
  14. 2022年荧光染料市场前景分析及研究报告
  15. 【编译问题】海思3559A编译问题 texi2dvi:命令找不到
  16. 基于数据驱动的故障检测(一)
  17. nexus私服传项目-401 Unauthorized
  18. android 5.0一键刷机教程,HTC D820t (Desire 820 移动4G Android 5.0)一键刷机教程,轻松刷机...
  19. [生信]甲基化测序的三种数据
  20. cygwin完全安装步骤方法(组图)

热门文章

  1. 揭晓eval(function(p,a,c,k,e,r)js代码解密加密程序
  2. i9 13900ks和13900k区别 i913900ks和i913900k对比
  3. 打击电商假货的社会意义
  4. txt文件字符在计算机,(35)在C盘当前文件夹下有一个已经建立好的顺序文件Alph.txt,文件内容为只含有字母的一个字符去、...
  5. mysql没开启binlog恢复删除表_无全量备份、未开启binlog日志,利用percona工具恢复delete的数据...
  6. Omap4470 USB驱动分析之注册过程
  7. 大疆自动驾驶,首次官宣即交货
  8. DS18B20+数码管显示
  9. silverlight | chrion.exe-动态语言创建silverlight
  10. STM32F407三重ADC配置