从零开始理解IEC104协议之二——基础知识

        104协议是101协议的网络版,101协议每次只能发送一个链路帧,而104协议可以连续发送多个链路帧,其传输效率明显高于101协议,而且具有TCP/IP的冲突检测和错误重传机制(这里重传是指断开重连重传),具有比101协议更高的可靠性和稳定性,另外对通信延时的限制更宽松。

        IEC104协议适用于厂站与调度主站间的以太网通讯(全双工高速),位于OSI体系中的应用层,其基本定义为端口号2404,调度站为客户端,厂站端为服务器,平衡式传输,协议类型是滑动窗口协议。

说明:

        1、平衡传输意为双方都可以发起信息传输。104协议下,一旦链路建立成功,变化信息除了响应召唤应答还可以主动发送而无需等待查询。

        2、对于基于TCP的应用程序来说存在两种工作模式,即服务器模式和客户机模式。它们之间的区别是:在建立TCP连接时,服务器从不发起连接请求,他一直处于侦听状态,当侦听到来自客户机的连接请求时,则接受此请求,由此建立一个TCP连接,服务器和客户机就可以通过这个虚拟的通讯链路进行数据收发。

        3、协议类型有三种,问答式协议模式为一问一答,超时重传,其特点是安全稳定,效率低下。简单窗口协议模式为N问一答,超时重传N个报文,其特点是效率相对提高,但浪费了A的发送。滑动窗口协议模式为A发送报文的同时,B发送确认帧进行确认;A记录自己已经被确认的报文,向前滑动最大可发送窗口,B记录有多少报文尚未确认,达到最大窗口或超时则发确认帧。A未确认窗口通常为B未确认窗口的1.5倍。其特点是效率高。

、小端模式

        104规约一般小端模式,即是指在内存的低地址中保存数据的低字节。大小端模式,并不由规约本身决定,而取决于CPU及操作系统。常见x86处理器(无论何种操作系统)都是小端模式,而PPC处理器则都是大端模式。

        而TCP/IP协议中所定义的网络字节顺序采用大端模式排序,而一般的读写顺序为——数据按地址由低到高的写入,由高到低写出。这样就造就了我们所看到的报文是低位字节在前,高位字节在后。

        举个例子在x86系统下,通过TCP/IP协议,我们将0x1234从以0x0000开始的内存写出。其过程如下:

        在x86系统中0x0000存储数据为0x34,0x0001存储数据为0x12,即0x1234;经过写出后,在网络上传输的字节顺序为0x0000存储数据为0x12,0x0001存储数据为0x34,即0x3412。

说明:

        1、既然数据分高字节、低字节,说明只有数据格式是2字节以上的,才有大小端模式,比如word、dword等;而byte类型数据是不分大小端模式的。

、重要参数

、K值和W值

        104规约规定了两个参数K和W,其取值为1到32767,其中K表示发送方在有K个I格式报文未得到对方的确认时,将停止数据发送;W表示接收方最迟在接收W个I格式报文后应发出认可。104规约规定K和W的默认值分别为12个APDU和8个APDU,推荐关系式为w<k*2/3。

        在实际中,K和W的具体取值可以根据TCP连接双方的数据通信量加以确定。对于从站RTU来说,每收到一个调度端的I格式报文都应立即响应,其W的取值实际上为1,由于RTU端可以循环向主站发送遥信、遥测等信息,因此K的取值与其循环发送的定时周期有关,通常12到20个APDU就足够了;对于主站端,由于不停接收RTU数据,因此应及时地给以确认,通常W取小于8个APDU的值。

        当未确认I格式APDU达到K个时,发送方停止发送。如果t1超时仍未收到确认,则重启链路。

、超时定义

        为了能对TCP连接进行检查和维护,104规定了几个超时时间:t0、t1、t2、t3。它们的取值范围为1~255s,准确度为1s。

        t0规定了主站和从站建立一次TCP连接的最大允许时间,即主站端一直发出连接请求,在t0时间内得不到连接建立成功的状态下,要向应用层提示,说明无法建立连接,一般可设置进行多次连接,当每次连接都超过t0无法建立成功时都应给出提示。默认值30s。

        t1规定发送一个I格式报文或U格式报文后,必须在t1的时间内得到接收方的认可,否则发送方认为TCP连接出现问题并应重新建立连接。这个过程是双向的,即对于厂站端和主站端当这个过程任一方发生时,两方的连接都需关闭,重新建立连接。默认值15s。

         t2规定接收方在接收到I格式报文后,若经过t2时间未再发送新的I格式报文,则必须向发送方发送S格式帧对已经收到的I格式报文进行认可,显然t2必须小于t1。默认值10s。

        t3规定主站或从站每接收一个I,S,U报文将重新触发计时器t3,若再t3内未能接收到任何报文,将向对方发送测试链路报文(U帧)。发送测试帧后,若在t1时间内没有收到测试确认,则连接关闭,若达到t3时间,则再次发送测试链路报文(U帧)。默认值20s。

、冗余机制

、通道冗余

方式一——链路冗余,应用共享

        链路冗余:所有链路互为主备,备用通道仅仅测试链路维持连接,通道的主备用是动态可切换的。

        手动切换模式:在当前激活的逻辑连接上人工发送STOPDT-ACT停止应用传输转为测试维护,然后再新的逻辑上人工发送STARTDT-ACT予以激活,作为主连接。

        自动切换由主站判断进行。连接初始化时,主站按某种逻辑关系选择确定主、备通道,例如先建立链路的为主通道或者误码率低的为主通道或者响应快的为主通道或按自然顺序选择主通道。运行中的自动切换可以由主站根据目前主、备连接的通信情况而定。

        应用共享:多个链路共用同一数据库,并且数据缓存的入栈出栈只针对当前主连接有效。

方式二——链路冗余,应用冗余

        链路冗余:与上文描述基本一致。

        应用冗余:即不同的链路不再共享数据库,各链路完全独立运行。这种方式的关键点是数据同步机制,用来实现数据的完整性和一致性。

        一般是将当前主连接中已经被主站确认的数据点号和数量,告知其他所有备用连接,并对备用连接中的应用数据进行实时整理,从而实现各链路数据库的内容动态一致。

        综上,方式二的模式实现了链路和应用真正的独立冗余,但内存消耗较多,程序较为复杂,同步机制的实施也会一定程度上影响数据的完整性。方式一,虽然各链路未能真正的独立运行,但在数据完整性的方面有着高可靠性。且编程复杂性较低,问题较少。本司正线采用方式一。

、双机冗余

1、冷备用

        即当主机工作时,备机处于待命状态,当主机故障或数据链路断开时,切换至备机。

        此方式的问题为:当主机与某个子系统数据链路断开无法连接时,将会使备机激活,接管主机全部的数据链路进行重新连接,初次连接建立时会产生大量网络传输。同时,在主机进行冗余切换而备机与子系统连接未完全建立时,数据交互将会暂停,无法取得子系统中最新的数据进行交互。

2、热备用

        两台通信前置机fep同时处于工作状态,与所有子系统进行连接。两台通信前置机fep通过串口连接,把各条链路的重传次数、重要报文延迟时间等信息定义未每条链路的通信服务质量权重,然后进行质量仲裁选择数据存入实时库,当其中一台通信前置机fep故障或数据链路断开时,则只取未故障通信前置机fep中的数据进行交互。

        同时也可以根据通信服务质量权重进行主备机的自动切换,这个过程从站(这时主备机通过串口传输通信服务质量权重)与主站均可发起。

        此方式的问题为:两台通信前置机fep同时与所有子系统进行连接,数据量比较庞大时,将产生大量的网络带宽浪费(两台通信前置机fep均正常工作时,只取其中一台的数据),双通道进行数据交互时还有可能造成子系统压力较大从而造成数据接口不稳定。并且部分子系统由于其接口特殊性,如串口通信,同时仅能一方与其进行数据交互,两台通信前置机fep无法同时与此类子系统接口进行数据交互。

        综上,可以看出冷备与热备各有优缺点,但上述内容只是基础知识,现在厂家针对这些问题在软件方面都做了大量优化,实际的技术细节以厂家资料为准。

        本司主变电所采用双机冗余(热备用)+通道冗余(方式二)。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容