当前位置:首页 >> 信息与通信 >>

杂谈通信协议、modbus、工控


标签: 无标签

转载一篇文章:各种 PLC 通讯介质和协议介绍
转载:各种 PLC 通讯介质和协议介绍 紫金桥软件技术有限公司 www.realinfo.com.cn 自从第一台 PLC 在 GM 公司汽车生产线上首次应用成功以来,PLC 凭借其方便 性、可靠性以及低廉的价格得到了广泛的应用。但 PLC 毕竟是一个黑盒子,不 能实时直观地观察控制过

程,与 DCS 相比存在比较大的差距。计算机技术的发 展和普及,为 PLC 又提供了新的技术手段,通过计算机可以实施监测 PLC 的控 制过程和结果,让 PLC 如虎添翼。但是各 PLC 通讯介质和通讯协议各不相同, 下面将简单介绍主要 PLC 的通讯介质和协议内容。 美系厂家 Rockwell AB Rockwell 的 PLC 主要是包括 PLC2、PLC3、PLC5、SLC500、ControlLogix 等 型号,PLC2 和 PLC3 是早期型号,现在用的比较多的小型 PLC 是 SLC500,中 型的一般是 ControlLogix,大型的用 PLC5 系列。 DF1 协议是 Rockwell 各 PLC 都支持的通讯协议,DF1 协议可以通过 232 或 42 2 等串口介质进行数据传输,也可以通过 DH、DH+、DH485、ControlNet 等网 络介质来传输。DF1 协议的具体内容可以在 AB 的资料库中下载。 AB 的 plc 也提供了 OPC 和 DDE,其集成的软件中 RSLogix 中就包含 DDE 和 OPC SERVER,可以通过上述软件来进行数据通讯。 AB 的中高档的 PLC 还提供了高级语言编程功能, 用户还可以通过编程实现自己 的通讯协议。 GE GE 现在在国内用的比较多的主要是 90-70 和 90-30 系列 plc,这两款 PLC 都支 持 SNP 协议,SNP 协议在其 PLC 手册中有协议的具体内容。 现在 GE 的 PLC 也可以通过以太网链接, 的以太网协议内容不对外公开, GE 但 GE 提供了一个 SDK 开发包,可以基于该开发包通讯。 欧洲系列 西门子 西门子系列 PLC 主要包括其早期的 S5 和现在的 S7-200、S7-300、S7-400 等 各型号 PLC,早期的 S5PLC 支持的是 3964R 协议,但是因为现在在国内应用 较少,除极个别改造项目外,很少有与其进行数据通讯的。 S7-200 是西门子小型 PLC,因为其低廉的价格在国内得到了大规模的应用,支 持 MPI、PPI 和自由通讯口协议。 西门子 300 的 PLC 支持 MPI,还可以通过 PROFIBUS 和工业以太网总线系统 和计算机进行通讯。如果要完成点对点通讯,可以使用 CP340/341。 S7400 作为西门子的大型 PLC, 提供了相当完备的通讯功能。 可以通过 S7 标准

的 MPI 进行通讯,同时可以通过 C-总线,PROFIBUS 和工业以太网进行通讯。 如果要使用点对点通讯,S7-400 需要通过 CP441 通讯模块。 西门子的通讯协议没有公开,包括紫金桥组态软件在内许多组态软件都支持 MP I、PPI 等通讯方式,PROFIBUS 和工业以太网一般通过西门子的软件进行数据 通讯。 最新技术文章 紫金桥软件技术有限公司 施耐德(莫迪康) 施耐德的 PLC 型号比较多,在国内应用也比较多。其通讯方式主要是支持 MO DBUS 和 MODBUS PLUS 两种通讯协议。 MODBUS 协议在工控行业得到了广泛的应用,已不仅仅是一个 PLC 的通讯协 议,在智能仪表,变频器等许多智能设备都有相当广泛的应用。MODBUS 经过 进一步发展,现在又有了 MODBUS TCP 方式,通过以太网方式进行传输,通 讯速度更快。 MODBUS PLUS 相对于 MODBUS 传送速度更快,距离更远,该通讯方式需要 在计算机上安装 MODCON 提供的 SA85 卡并需安装该卡的驱动才可以进行通 讯。 除了上述两种方式之外,莫迪康的 PLC 还支持如 TCP/IP 以太网,Unitelway, FIPWAY,FIPIO,AS-I,Interbus-s 等多种通讯方式。 日系 PLC 欧姆龙 欧姆龙系列 PLC 在中国推广的也比较多。在通讯方式上,OMRON 现在主要采 用两种通讯方式: Host Link 协议是基于串口方式进行数据传输的通讯方式。当 PLC 进入 MONIT OR 方式时,上位机可以和欧姆龙 PLC 通讯。在和欧姆龙通讯时要注意,两次 通讯之间要留一定时间,如果通讯速度过快容易造成 PLC 通讯异常。 ControlLink 是欧姆龙 PLC 的一种快速通讯方式。Control Link 通过板卡进行数 据通讯, 板卡之间有数据交换区, 由板卡实现数据的交换从而完成数据采集功能。 使用该方式通讯需配置欧姆龙的驱动。 三菱 三菱 PLC 的小型 PLC 在国内的应用非常广泛。三菱的 PLC 型号也比较多,主 要包括 FX 系列,A 系列和 Q 系列。三菱系列 PLC 通讯协议是比较多的,各系 列都有自己的通讯协议。如 FX 系列中就包括通过编程口或 232BD 通讯,也可 以通过 485BD 等方式通讯。其 A 系列和 Q 系列可以通过以太网通讯。当然,三 菱的 PLC 还可以通过 CC-LINK 协议通讯。 松下 松下 PLC 和计算机之间可以通过串口和以太网进行通讯。其采用的通讯协议是 MEWTOCOL 协议。如大多数日系 PLC 一样,MEWTOCOL 协议比较简单。包

括紫金桥组态软件在内的许多软件都可以从 PLC 中直接读取数据。 以上介绍的是国外的主流 PLC 设备通讯方式。除以上厂家外,还有很多 PLC 厂 家: ---------------------------------- ------------------------------ ps:关于西门子的部分描述我有不同意见。西门子的以太网通讯,其实西门子还 是提供了接口函数供调用的,在网上有人撰写过文章阐述过工程中用高级语言 (如 c)编程直接和 s7 通讯而无须西门子的 simaticnet 软件。另外 06 年我也碰 到过一家 scada 厂商提供了一个 s7 驱动,也是不需要安装 simaticnet,实际效 果还可以。 系统分类: PLC/PAC | 用户分类: 杂谈 | 来源: 转贴

VB 的 split 函数
这两天在写一个 VB 小程序,中间碰到不少问题,毕竟很少摸 vb 了,基本语法 都快忘光了,好在有网络啊,哈哈,发现网络真是好,有什么不清楚的就上百度 找,比如发现了一个以前没有用过的函数:split,帮了我大忙,否则我要自己编 一个函数来实现这个功能。 因为我的程序用到了 ini 文件,在 ini 文件里面的键值 是形如: “A,B,C,D,E”,这样每条键值读出来就需要分解为 A B C D E 然后分别处理 之,正好 split 函数就是干这个活的。 ---------------------------------- ---- split:返回一个从零开始的一维数组,其中包含指定数量的子字符串 示例: Function testSplit() Dim a As String a = "1,2,3,4,dsd-ad5,6,45,656465,564,45" Dim b() As String b() = Split(a, ",") Debug.Print b(4) End Function 解释如下: Split 函数 返回一个从零开始的一维数组,其中包含指定数量的子字符串。 FunctionSplit( ByVal Expression As String, Optional ByVal Delimiter As String = " ", Optional ByVal Limit As Integer = -1, Optional ByVal Compare As CompareMethod = CompareMethod.Binary ) As String() 参数 Expression 必选项。字符串表达式,包含子字符串和分隔符。如果 Expression 是零长度的 字符串 (""),Split 函数将返回长度为一的数组,其中包含一个空字符串。 Delimiter 可选项。单个字符,用于标识子字符串的界限。如果省略了 Delimiter,则假定 空白字符 ("") 为分隔符。如果 Delimiter 为零长度字符串,则返回包含整个 E xpression 字符串的单元素数组。 Limit 可选项。要返回的子字符串数;默认值为 -1,表示返回所有子字符串。

Compare 可选项。数值,指示计算子字符串时使用的比较模式。具体的值请参见“设置”。 设置 Compare 参数可以具有下列值: 常量 说明 Binary 执行二进制比较 Text 执行文本比较 ---------------------------------- --------------------------

系统分类: 其他技术 | 用户分类: 杂谈 | 来源: 原创

闲话 MODBUS 通讯(1)

关于 Modbus 是什么东东就无须多言了,因为这个协议实在是应用太广泛 了,究其原因恐怕在于:1 协议内容完全透明公开;2 实现起来所需的硬件和软 件都比较简单;所以在工作中经常碰到什么电度表、流量计需要和 plc 进行 mod bus 通讯,或者两个厂家的产品之间需要交换数据也会想到用 modbus。 这次想认真深入研究下,于是百度了半天,最后发现还是英文原版的 modb us 协议文本最好,毕竟是最正宗的啊。当然我是先看中文的,不明白了再翻英 文的。另外还有一个就是安装了 step7 的 modbus 驱动(包括 master 和 slave) 后会有一个 master 和 slave 的 pdf 文件, 其中讲述 master 的 pdf 文件还是不错 的。举个例子我开始想当然的认为主站发给从站的电文中,地址就是如实写的, 比如 00001 在电文中就是 00 01,我用 commix 软件做 master,发送报文过去, 然后监控串口,我自以为返回的报文是“正确”的。然后换了一个专用的 modbu s 模拟器发命令下去, 却不对了,监控报文发现对方返回的内容偏移了一个 bit, 奇怪啊, 后来查阅文档才发现, 西门子网上课堂关于串口通讯的教程其中有个常 见问题“如何计算 modbus 地址”,里面说可以参考 modbus master 1.3 节。 ――――――――――――――――――――――――――――――――― 在西门子的 Modbus_master 第 1.3 节有如下描述:
In the transmission messages on the serial transmission line, the address esused in t he MODBUS user system are referenced to 0.In the MODBUS user system itself, thes e addresses are counted beginning with 1. Example: The first holding register in the user system is represented asregister 40001. In the transmission message, the value 0000 Hex is transmitted as the register address when FC 03, 06, or 16 is used.The 127th coil is represented as coil 00127 in the us er system and is assigned the coil address 007E Hex in the transmission message.

即 Modbus 规定的地址是从 1 开始的, 例如输出位(COIL STATUS)的地址范围是从 00001-09999, 但是主站发给从站的报文中却是从 00000 开始的,即若要读取第 127 个输出位,则报文中该地址应为 126 即 00 7E。 ――――――――――――――――――――――――――――――――

闲话 MODBUS 通讯(2)
现在很多人都有这个共识:用 plc 和现场的设备做 modbus 通讯的话,先用 pc 机测试下。于是 pc 上的串口调试软件就成为必备的利器了。我在百度上找了不 少相关软件,有通用的串口调试软件如 commix,也有专用的 modbus 调试仿真软 件: ? COMMIX V1.4

只有一个可执行文件,可以自动生成 modbus 的 crc 校验码,但是毕竟不是专门 的 modbus 调试仿真软件,用 commix 必须十分熟悉 modbus 报文格式; ? MODBUS V3.16

开始我觉得这软件挺复杂的, 不知道咋用。 用着用着就上手了, 觉得相当的好啊。 加拿大的一个叫做 Calta 计算机公司的东东,功能很全,用起来也很方便,我觉 得最好用的一个 modbus 专用仿真软件。支持 master 和 slave 模式(还支持 mon itor 模式即只监控串口),支持 1-6,15,16 功能码(但是对于 15,16 只能 一次写一个变量下去),支持串口的报文监视; ? MODSCAN

只能做 master,且不支持 15,16 功能码,界面还不错; ? Modbus 调试精灵 V1.024

找了好几个网站下载都是一个可执行文件,偏偏报告缺少什么 dll 文件,看上去 是因为软件是用 mfc 写的, 没办法只好去网上下了几个 mfc 的 dll 文件才运行起 来。界面过于简陋,只能做 master 但是居然支持写多寄存器也考虑得不错了。 另外还有几个 modbus 软件,带了某某公司的标志,用起来跟 modscan 差不多。 系统分类: PLC/PAC | 用户分类: 杂谈 | 来源: 原创

闲话 MODBUS 通讯(3)
关于 MODBUS RTU 的 crc 校验,在百度上居然发现某些网页给出的算法有误,真 是晕,还好找到了两段程序,一个是 lad 写的(就是亿万论坛上有网友发的 340 做 slave 的例程)另外一个是 scl 写的,模拟了下发现结果是相同的,再对照算 法看完程序心中有数了。

附 crc-16 的算法(应该是正确的,呵呵): ①装入一个 16 位寄存器,所有数位均为 1。 ②该 16 位寄存器与开始 8 位字节进行"异或"运算。 运算结果放入这个 16 位寄存 器。 ③把这个 16 寄存器向右移一位。 ④若向右(标记位)移出的数位是 1,则生成多项式 1010000000000001 和这个 寄存器进行"异或"运算;若向右移出的数位是 0,则返回③。 ⑤重复③和④,直至移出 8 位。 ⑥另外 8 位与该十六位寄存器进行"异或"运算。 ⑦重复③~⑥,直至该报文所有字节均与 16 位寄存器进行"异或"运算,并移位 8 次。 ⑧这个 16 位寄存器的内容即 2 字节 CRC 错误校验,被加到报文的最高有效位。 系统分类: PLC/PAC | 用户分类: 杂谈 | 来源: 原创

闲话 MODBUS 通讯(4)
关于 Modbus ascii 协议 不明白为什么 modbus 协议要分成 rtu 和 ascii 两种,资料上说 ascii 协议效率 低但是实现简单,因为有确定的报文头部(冒号)和尾部(回车加换行),而且 rtu 中的一个 byte 数据比如 10,在 ascii 中就要用两个 byte 来表示,即 1 的 a scii 码和 0 的 ascii 码,这就更不懂了,相对 rtu 而言,ascii 实现起来能有多 少方便的地方?也许, 是我对串行通讯实现的基本原理包括从硬件到底层软件都 不熟悉吧,只能这么说服自己了。 除此之外,ascii 协议与 rtu 协议的区别还在于校验方式的不同,前者采用了 L rc 校验,后者采用了 CRC 校验。相比之下,LRC 校验的却简单多了,即把报文内 容(不包括头部的冒号和尾部的回车换行)相加,然后取反,再加 1.最终得到 的 LRC 校验码,如果和报文内容累加结果应该是 0(进位舍弃)。为了实现这个 算法,倒是费了点脑筋:首先两个 ascii 字符需要合并成一个 byte 数据,我先 想到了字符串合并函数,想着先合并然后把字符串转换成 int 再转换成 byte, 于是去查手册,有的,但是实验下来不对,再看函数说明,其实是两个标准的 I EC 块,help 里面说第二个串必须是数字云云。算了,自己编个块来解决吧。其 实也很简单, 因为 ascii 协议的数据部分每个字节都是 0-9 以及 A-F 范围内的, 据此换算加起来就是一个 byte 的数了。后面的取反也没找到什么适合的命令, 一时之间干脆也自己编了,正好前面曾经看过 at 指令的用法,在这里用上了真 是很合适啊, 看来平时不断的知识积累很重要啊, 关键时候说不定就派上用场了。 系统分类: PLC/PAC | 用户分类: 杂谈 | 来源: 原创

闲话 MODBUS 通讯(5)
关于 modbus 多主站轮询的问题。 其实这并不仅仅是 modbus 的问题,485 通讯的好处是可以挂多个从站,但是问 题随之而来,主站与各个从站通讯就成了问题,因为 485 通讯是半双工的,也就 是发的时候不能收,收的时候不能发,换句话说大伙要有秩序要排好队。查阅西 门子网上课堂里面关于串口通讯的教程,最后提到了 485 多站轮询的问题,给了 两种解决方案: 1、定时发送; 2、以发送和接收完成标志来继续下次发送; 个人觉得第二种方法效率比较高,当然如果在规定时间内容没有接收到正确数 据,则应该继续下次发送而不是“苦等”下去。也就是应当有个 time-out 的设 置。 另外一般常见的 retry 我倒是觉得未必需要,如果这次收不到正确报文又何 必再发呢?等下次轮询再发嘛,否则拖延整个轮询周期倒显得不好,只要把 tim e-out 设置的合适即可,也就是说每次轮询给从站一次机会足矣。 在西门子论坛里面找到一个相关帖子: ―――――――――――――――――――――――――――――
CPU 为 314(6ES7-1AE04-0AB0),外加 CP341(MODBUS MASTER RTU),下载硬件及配置 CP341 驱动成 功,但提示 FB7,FB8 不能下载,怎么办?是不是 CPU 版本问题? Dongle 插了,什么程序先不下装,只下硬件,然后运行,OK 然后在 STOP 状态下,下装 blocks,然后就出现下面的错误! (D280) Error compiling block in S7-300 CPU. Unable to copy the block ptp\SIMATIC 300(1)\CPU 314\S7 Program(1)\Blocks\FB7. Do you want to continue the copy procedure? 在线看 CPU 的故障报告: Event 1 of 100: Event ID 16# 6539 Illegal command in block (detected by compiler) FB number: 7

Module address: 2820 Operating mode: STOP (internal) Internal error, Incoming event 在线看 CP341 的诊断

Module not available (I/O access error or parameter assignment error) 兄弟们帮我看看怎么回事!!谢谢了

――――――――――― 谢谢楼上各位的答复,问题已经解决. 老的 CPU 不支持 FB7,FB8,改用了 FB107,FB108 测试收发数据正常. 有点点收获,大家分享 就是看了手册,发现 FB8 中大写的'S'及'X'可以不用.程序测试不用也能收发正常.不知道是不是瞎猫撞死 耗子了,呵呵. 现在还有些问题想求助兄弟们,望不吝指教. 1.现场有四个从站,我采取何种方式来轮询每个站的数据.用四个发数据块,四个接收块,还是收发都只有一 个数据块.数据块如何调度.每个站是不是 FB8 的 DONE=1 时 FB7 的 EN-R 才有效,还是 EN-R 一直有效?如果 F B8 的 ERROR=1,对该站如何处理?是重新发送,还是程序直接跳过,轮询下个从站?看了 siemens 例程没有涉及 到.做过相关方面的兄弟给点指点,谢谢了.刚接触通讯,不是很明白 2.现场的距离超过 50 米,要加电阻,那么 CP341 的 330 欧姆电阻怎么加到 4,11 的管角上? 8 到底要不要接 G ND?如果两边等电位可以接,但一般都是不等的,那么 8 就可以不接了?是不是这样? 希望可以得到兄弟们的指点,先谢谢了!

―――――――――
1、我做过相关的通迅,我做的思路是每个从站有一个发数据块 DB,一个接收块 DB,在 OB35 中调用,通 过计时器设定时间来同步改变 FB7 和 FB8 的接收和发送数据块号码来轮询, 时间的占空为使能时间 100m s 和空闲时间 500ms。不管从站是否返回数据,都得进行下一个从站的轮询,以免影响其它从站的通迅。 2、如果是自己做接头自己焊一个电阻上去,如果是端子,跨接到端子上,8 接到通迅接口的 GND。

―――――――――――――
感谢 lybin!! 您说的应该是在 CP341 里面建一个发送 DB,一个接收 DB 吧?那么接收的数据如何转存?一个 DB 的话,下个站 的数据不是覆盖了前面的数据吗?您怎么处理这个问题? 您说的时间的占空为使能时间 100ms 和空闲时间 500ms 什么意思?能说的明白点吗? 另外,我买的 15 针的一个 D 头,自己焊上去的,再焊加电阻的话,D 头上面的塑料盖子都盖不上了,郁闷?

――――――――――――

一般来说发送 DB 和接收 DB 是公用的,也就是说只需要个发送 DB,一个接收 DB。 发送时只管轮询,发送间隔(即楼上的说的占空使能)依据轮询次数、波特率、长度还有程序复杂程度而 定。我比较喜欢用 ClockMemory 来做。另外发送时可将接收缓冲区清空一下。 接收块始终使能,每个周期都对接收缓冲区进行数据提取,并将提取所得数据转存至其它地方。因为有校 验,不用担心数据被覆盖。 有点类似与生产/消费者的意思。

―――――――――――――――――――――――――――
我做的是每个从站建一个发数据块 DB,一个接收块 DB,通过时间来改变 FB7 和 FB8 指定 DB 块,不存在数 据转存问题.如:在与 1 号从站通迅时,FB7 和 FB8 数据 DB 块分别用 DB1 和 DB2,在与 2 号从站通迅时,FB7 和 FB8 数据 DB 块分别用 DB3 和 DB4,在与 3 号从站通迅时,FB7 和 FB8 数据 DB 块分别用 DB5 和 DB6,...... 占空为使能时间 100ms 和空闲时间 500ms 意思为 M 值在一个周期 600MS 内开始的 100ms 为 1,和 500M S 的时间为 0 电阻很小的,可以焊接在 15 针和 9 针的 D 型头内,我做过.

――――――――――――――――――――――――――――――――― http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=4&a_id=448343&s_i d=0&num=18#anch 系统分类: PLC/PAC | 用户分类: 杂谈 | 来源: 原创

闲话 MODBUS 通讯(6)

modbus 的后续
ModBUS 总线是美国莫迪康(Modicon)公司(后被法国施耐德 Schneider 公司收 购)在世界上首先推出的基于 RS485 的总线。ModBUS 为 Modicon’s BUS(即:M odicon 的总线)的缩写。 首先, MODBUS 物理层是 RS232/422/485 MODBUS PLUS 链路层采用的是 HDLC,速度 2.5M MODBUS TCP/IP 是把 MODBUS 作为应用层协议,TCP/IP 作为下层协议 其次, Modbus 以及 Modbus Plus 有什么区别? Modbus 是一种通讯结构,广泛应用在智能设备之间进行主-从方式通讯。一个 M odbus 信息桢包括从机地址、功能码、数据区和数据校验码。正因为 Modbus 仅 仅定义了通讯结构,所以可以使用 RS232、RS422 和 RS485 端口,可以使用光纤、 无线等媒质实现通讯。 而 Modbus Plus 则是一种典型的令牌环网,完整定义了通讯协议、网络结构、 连接电缆(或者光缆)以及安装工具等方面的性能指标。 Modbus+网络中的设备通过‘令牌’的方式实现数据的交换, 严格定义了令牌的 传递方式,数据校验以及通讯短口等方面的技术参数。 MODBUS PLUS 比 MODBUS 的性能更好,通讯速率快,从协议开发上来说区别较大, modbus 比较简单。 ----------------------------------------------------------------

mb+(modbus plus)
Modbus Plus 是为工业控制应用设计的多主站网络系统。 该协议由 MODICON INC. 开发。 Modbus Plus 是一种高速令牌循环式现场总线,其传输速率达到 1 MBaud, 允许每秒最多支持 20,000 words 的网络速率。

在一个网络中,支持 64 个节点的互连。在有中继器的情况下,传输距离可以从 每段 450m 延长到 1800m。一些网络也可以通过网桥互连。 依靠“全局数据”可以得到数据快速交换的广播功能。这些“全局数据”通过令 牌的形式被发送,即使在不直接通讯的情况下,每个节点也都接收该数据。 ------------------------------------------------------------------

MODBUS TCP
Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII 模式采用 LRC 校验,RTU 模式采用 16 位 CRC 校验,但 TCP 模式没有额外规定校验,因为 T CP 协议是一个面向连接的可靠协议。 对于 Modbus 的 ASCII、RTU 和 TCP 协议来说,其中 TCP 和 RTU 协议非常类似,我 们只要把 RTU 协议的两个字节的校验码去掉,然后在 RTU 协议的开始加上 5 个 0 和一个 6 并通过 TCP/IP 网络协议发送出去即可。 (以下摘自 anybus 网站) Modbus-TCP 网络的性能与以太网的类型和设计有很大关系,并且与不同设备通 讯接口所使用的处理器性能也有很大关系。 Modbus-TCP 的协议效率高达约 60% 。这是因为其应用层协议允许在一个 TCP/IP 帧中传输多个寄存器,另外 TCP /IP 协议本身只增加了几个字节的报文头。 Modbus-TCP 是一种在自动化设备中用以太网作为数据传输媒体的务实的方法。 在网络架构 ( 星型拓扑和智能交换机 ) 上附加的费用被证明是合理的, 因为以 太网能够传输大量数据, 还能同时具有附加功能 ( 嵌入式 Internet 、 email 和文件传输 ) 。与其它工业以太网系统相比。 Modbus-TCP 的市场表现已明显 领先,并且在考虑初始投资和充分利用现有资源上有明显优势。 系统分类: PLC/PAC | 用户分类: 杂谈 | 来源: 原创

转载一篇文章:PLC 的面向对象编程

文章后面关于程序标准化的优越性,作者写到“传统的中国控制工业,一个程序 设计由一个人完成,这样他还必须 负责现场调试,而拥有丰富经验的程序员一 般是三十岁后,这时他已经成家,而显然长期出差对家庭不利,很多优秀的程序 员为了家庭考虑不得不改行,要么转到管理岗位,要么去制造工厂搞设备维护, 这是资源的严重流失。毫无疑问,使用以上的设计流程,我么可以让经验丰富的 程序员搞标准库和架构的设计,而让刚踏入这 个行业的年轻人搞应用设计和调 试,这不仅可以让老程序员继续他自己的工作,而不影响家庭,也可以让年轻的 程序员参入现场调试,培养自己的经验,提高自己的收入。” 感慨啊感慨。

――――――――――――――――――――――――――――
? ? ? ?

作者:吴向阳 出处: 阅读:572

发布时间:2007-10-19 10:56:00 ? 供稿:

面向对象编程是计算机高级语言的一种先进的编程模式,在工业控制系统的 PL C 程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多优秀特点 如 “继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编 程的基本概念就是类和类的实例 (即对象) 我们只需要使用这种概念就可以了。 , 在计算机编程中我们需要把一些事物抽象和归纳,才能编写类,而在工业控制系 统中,控制对象如:电机,阀等等是很明显的控制类别,不需要抽象就可以很明 显的针对它 们编写类,以下将会用到西门子的 Step7 编程语言和施奈德的 Unit y 编程语言来讲解 PLC 的面向对象编程。 一、 实现方式 在 Step7 中使用功能块(即 FB)编程,一谈到此大家就会想到西门子提出的模 块化编程,不错,就是这个模块化编程,但西门子提出的模块化、背景数据块、 多重背景等名词并不能让大家很明白的理解和使用这种优秀的设计理念。 如果大 家从面向对象编程的角度去理解,则可以很好的理解这种设计模式。“FB 块” 被看 成“类”,它可以被看成是对相似的控制对象的代码归纳,如对 MM440 的 变频器可以编写 FB 块:MtrMM440,这在面向对象编程中称为“类”,当需要 编程

控制具体的电机时,可以给它分配一个背景 DB 块,在面向对象编程中称为类的 实现(即创建类的实例:对象),当需要控制多个电机时,可以分配不同的背景 DB 到这个 FB 块,即创建类的多个实例。Step7 中有另外一种程序块,即 FC 块, 以 FC 块为主的编程在西门子中称为结构化编程,这也可以类比于计算机编程中 的面向过程编程,即纯粹以函数为主体的编程。 施奈德的 Unity 软件编程可以更好的理解面向对象编程。 它的 DFB 定义中包含输 入/输出参数,私有/共有变量,以及代码实现,而这正是计算机的面向对象 编 程中“类”的基本元素,而创建类的实例(对象)就像创建普通的“布尔”变量 一样,只需在“Function Blocks”中定义这种“类”的变量即可。 Step7 和 Unity 都可以采用面向过程和面向对象编程方式,这两种编程方式的区 别类似于计算机高级语言中的 C 语言和 C++语言编程的区别。 以下的讲解将会把 Step7 中的 FB 和 Unity 中的 DFB 称为“类”,Step7 中的 FB +背景 DB 以及 Unity 中 DFB 的实例称为“对象”。 二、 面向对象编程架构 以上讲解的是实现细节, 而编程思想是建立在程序架构上的,不是某个局部使用 了面向对象方式, 则可以称之为这种编程就是面向对象编程。这种编程需要从以 下方面着手: 1、 电路设计的结构化。 这里主要以自动线为主介绍,对于单机机床可以是它的简化结构, <1>、自动线层:这是最高层次,它拥有一个主 PLC,对属于它下面的各区域控 制 <2>、工程层:拥有独立的配送电系统,但没有 PLC,只有分布式模块,由自动 线控制。顾名思义,它有着较大的独立性,可以作为一个单独的工程项目设计和 制造,当自动线比较小时,可以省略该层次。 <3>、功能组层:根据工艺划分,将实现某一个工艺功能的区段设备划分为一个 功能组,它隶属于工程层,当工程层被省略时,隶属于自动线层。 面向对象编程并不一定要求使用以上的结构, 但好的电气结构更利于面向对象编 程。 2、 任何控制对象逻辑都在“类”中实现。 为了做到这点,必须分析与控制对象相关的信息,譬如,对于一个电机,有以下 相关的信息需要考虑: 输入信息: <1>、电路保护信息,如电机的空气开关,热继电器等。 <2>、功能保护信息,如运动电机的限位开关,风机的风压开关,油泵的油位开 关等。 <3>、启动和终止条件,以上的电路保护和功能保护都可能导致电机运转终止, 复位也可能导致重启动, 但这里的条件指的是正常运行的启动和终止条件,譬如 顺序控制的流程步。

<4>、控制模式:如手动和自动等。 <5>、故障复位:通过复位信息,重新启动。 输出信息: <1>、控制输出,如控制电机的主接触器。 <2>、状态信息输出 <3>、故障输出 。。。 状态储存信息: 用于代码实现的中间变量以及可以被人机界面读出的状态变量等 把以上信息都整合到一个类中,并尽量使类的参数标准化。不过,同高级编程语 言还是曾在一些差别,针对 Step7,应该遵循的标准是:程序结构由 FC 实现,对 象控制由 FB 实现,如下的一种结构体系(其电气结构来自上面的介绍):

这只不过是一个粗略的 PLC 程序架构体系,好的架构应该更完善和科学。 3、 规划好数据结构 数据结构的定义相当重要,并尽量统一这些结构,不要顾虑存储空间,当今的 P LC 内存足以容纳大量的数据。说明一点的是在 Step7 中尽量不要在类的外部定 义数据结构(UDT),而是在类里面定义, 虽然会造成不同类中同一结构的重复性定 义,但却提高了类的独立性。

三、 优越性 1、 标准化 使用这种设计模式,可以将程序设计分为两个阶段,即标准库、基本架构开发, 以及实际应用层面设计。其中标准库、基本架构是制定程序标准化的基础,而应 用层设计是针对具体的控制工程编程,这样可以把程序设计人员分成两类,一类 是标准开发,由资深程序员负责,一类是应用设计(其中程序调试规划到应用设 计),由 经过标准化培训的一般程序员完成,通过这种分配就可以解决中国工 业自动化中面临的尴尬局面。 传统的中国控制工业, 一个程序设计由一个人完成, 这样他还必须负责现场调试, 而拥有丰富经验的程序员一般是三十岁后,这时他 已经成家, 而显然长期出差对家庭不利,很多优秀的程序员为了家庭考虑不得不 改行,要么转到管 理岗位,要么去制造工厂搞设备维护,这是资源的严重流失。 毫无疑问, 使用以上的设计流程,我么可以让经验丰富的程序员搞标准库和架构 的设计, 而让刚踏入这个行业的年轻人搞应用设计和调试,这不仅可以让老程序 员继续他自己的工作,而不影响家庭,也可以让年轻的程序员参入现场调试,培 养自己的经验,提高自己的 收入。 这可能让某些人士担心, 认为年轻的程序员可以参加现场的调试吗?可以肯定的 是没有标准化支撑的程序不仅年轻的程序员编不出来,而且现场调试会问题多 多。 但有了好的标准化后, 一年半以上工作经验的程序员就应该能够独立面对自 动线。 PLC 中的面向对象编程的核心就是黑匣子编程,针对 Step7,我们使用 FB 去实现 每一个对象的控制,控制逻辑、报警处理、信号交换全在 FB 中,对于应用设计 人员,不需要明白里面的代码实现,只需要了解该 FB 的功能以及如何使用好它 就行, 这样对于应用程序人员的编程能力要求大大降低,对于编程只不过是遵循 架构,拷贝代码,改变输入输出条件而已。 那么调试呢?很多人认为使用 FB 编程的最大麻烦就是 FB 的多次调用后, 根本无 法诊断这些代码, 从技术层面上讲确实如此,我们除了从背景 DB 上查看信息外, 是无法在它多次被调用后监控代码的,但我已说过,这是黑匣子编程,我们不 需要诊断这些代码, 只需要知道什么样的输入、什么样的参数设定导致什么样的 输出就行, 代码的逻辑与功能好坏是由标准库开发人员负责的,这就要求标准开 发人员需要对他设计的功能块在不同条件下进行不同的测试,保证无误,还需要 编写完整、 详尽的功能说明文档,以便于应用设计人员了解这些块,标准架构 并不是制定出来就一劳永逸的, 针对千变万化的工程,它是需要不断完善和修订 的,这也是一个工程公司可以实实在在进行知识积累的地方。 程序不仅需要给调试人员使用,而且用户(设备维护人员)也需要了解,如果把 完整的标准库文档给用户,可能存在技术外泄的可能,若不给,对他们诊断设备 可能曾在困难,这就需要标准制定人员制作另外一分文档,即设备维护文档,其 知识的透漏以用户能够使用程序进行诊断为限。 2、 重用性和易管理型

计算机面向对象编程的优点也有重用性和易管理型,在 PLC 中也存在,以 Step7 为例,需要讨论 FC 和 FB 的差异。观察数据类型,FB 比 FC 只不过多一个 “STA T”类型,在使用上 FB 需要背景 DB,FC 不需要,但就这个差别导致 FB 拥有自己 独立的数据储存空间,而 FC 的数据储存却必须借助公有变量(如中 间变量 M 或者共享 DB),有这样一种准则,程序块的独立性越强,其重用性也越好,产 生数据访问冲突的可能性也更少,则更易于管理。有些公司生产的 PLC, 其程 序语言没有类似 FB 的这种特性,这时可以采用类似“FC+共享 DB”的替代方案 解决,但它的独立性已经大大降低。 同样的代码, 独立性是标准制定的一个重要环节,很难想象一个与其他功能块之 间有着千丝万缕联系的功能块能够被作为标准块在不同工程中有效的重复使用。 纵观计算机语言的发展, 最开始的编程都是令人恐怖的,而当今的编程让人们得 到很大的解脱, 有很多现成的标准类库实用,人们可以把更多的编程精力放在实 现功能本身上,PLC 编程也应该朝这种方向发展,应该让更多的人从事应用层面 的设计, 那些标准功能块不应该重复的被不同人员开发,虽然各大 PLC 厂开发了 大量 的程序库, 但工业控制对象各式各样,不同行业都应该拥有自己的程序库, 而代码的可重用性是评价这些功能块好坏的关键。 3、 设计思想的先进性 在电路图设计中我们早已经在使用针对控制对象的绘图方式, 即把基本的主配送 电路和 PLC 配置完成后,我们会针对每一个现场控制对象如:电机、阀、气缸等 控制对象绘制电路图, 他们的电源来自主配送电路, 控制和反馈与 PLC 建立连接, 硬件连锁根据实际情况调整, 一个个控制对象就象搭建积木一样有组织的堆积起 来,同样的,编程也是针对一个个控制对象使用相应的标准控制块实现就可以, 把程序控制细节实现了有效的封装,使程序看起来简洁和易于维护,而好的设计 可以 把原理图和程序进行很好的关联,甚至于做到一对一的关系,如原理图中 的一个控制对象可以在程序中找到相应的 FB 调用与之对应,真正做到面向控制 对象编程。 可能有人疑虑,PLC 编程大部分是步进编程,这一个个标准块都是针对控制对象 的,那控制顺序如何实现呢?这就要求编写专门的顺序控制 FB 块,或者使用 Si emens 现成的 Graph7 来实现,这点与一般编程没什么差别。 结 束语:现在的工业控制领域有很多程序高手,他们很精通算法,也有着自己 的编程理念,当我和一些人探讨标准化时,他们认识到标准化的高效性,但认为 这样无法体现自己的编程水准, 是的,如上所述作为应用层面的程序设计是不要 很高的编程水平, 但要想想, 一个人难道能一辈子去搞现场调试吗?若想体现自 己的价值,可 以从事标准编程。我更希望他们能花一点时间研究程序架构,各 行各业, 真正的大师是系统架构设计者,编程小技巧只不过是为好的架构锦上添 花。 愿中国的工业自动化能够早日摆脱小作坊式的时代!

关于 Profibus PA 的一些学习体会 最近参加一个项目投标, 涉及到了一些 profibus pa 的技术问题,为此上网找了 些资料来看, 主要是西门子的产品和资料,发现 pa 这个东西跟 dp 还是有点区别 的。 从硬件上看,分为防爆和非防爆两大类,配置和性能是不同的: -DP/PA Coupler -DP/PA LINK(若仪表数量少于 20 台左右可省略) -三通 Tap 头:6GK1905-0AA00,每个仪表需一个 -终端电阻,每条 PA 线需要一个 (去找了下魏德米勒的 pa 接头产品, 内部集成有终端电阻, 通过跳线开关来设置; 有分路电缆接线型和插拔型提供 1,2,4,8 个分路的产品。西门子的三通价格 听说为 5k,折扣后也要 2k,而魏德米勒的三通网上报价仅 1k 多) -有源总线底板(连接 Link 和 Coupler) -导轨 -Pa 电缆 -支持冗余 关于导轨和有源总线底板,发现手册里面有矛盾之处:在《PROFIBUS-PA 应用手 册》里面关于非冗余非防爆的系统配置里面,选用了有源背板插块,但是导轨却 选了标准导轨(但是没给出订货号);在 2005 年 12 月版的《如何配置 SIEMENS PROFIBUS PA 总线仪表方案》的 2.2 节却没有选用有源背板插块,导轨则明确为普通的标 准导轨;显然有两种方式:有源总线底板+热插拔导轨、普通导轨(用普通的总 线连接器),那么第一本手册里面的描述就有误了,至少没有给出正确的导轨的 订货号。 而手册《SIMENES PROFIBUS PA 网络中可以接入多少台 PA 仪表》中,则描述了 每台 LINK 可以接 5 台 COUPLER,但是由于 dp slave 数据量的限制,而导致一个 link(作为一个 dp slave)只能达到 244 bytes。若一台仪表的输入字节数为 15bytes,则只能接入 16 台仪表。所以单纯 的考虑一个 link 挂几台 coupler 也要考虑好这个因素。从这点来看,一个 pa 网段能挂几台仪表,不仅要考虑供电还要考虑数据通讯量。 关于 im157 和 im153-2 的区别,我专门去西门子发帖子问去,有人说: 接口模块说来话长,IM157 是早期型号,据说已经停产,那时 157 和 153 是不可 以互换使用的,即 DP-LINK 用 153,DP/PA-LINK 用 157;目前西门子力推新的 I M153,即将 ET200M、DP-LINK、DP/PA-LINK 三个的接口模块统一为 IM153,此 时可以互换。IM 型号中的 1 和 2 表示有室内、室外型号之分。软件组态时显示 的是 1 个,其实代表了一套 LINK。

搜索了半天,总体感觉 pa 的资料太少,而且有点陈旧和凌乱。现场总线提出已 经不少年头了,感觉就一个字:乱。

也谈 PLC 程序的维护 在亿万论坛里面看到有人贴了 PLC 调试步骤: ―――――――――――――――――――――――――――――――――― PLC 程序调试步骤 人的脑力是有限的,并且记事情也有时间性。过了 N 天就会忘记每次修改 的原因,为什么要加这条指令,为什么要删除这个网络,让自己以后看自己以前 编写的程序时都会很困惑。 做到以下步骤,对所有程序理解与修改会有很大帮助 的。 1、 把原有程序另存一个, 在另存的程序上作修改。 文件命名一个主要的程序名称, 标注第几次修改, 并加上修改的日期,最好是在文件名外加上简要的修改标题。例如: 《 捆扎程序 5(06.10.23 翻板步进电机加条件) 》 2、 用.doc 文件记录修改的年月日。 3、 在日期下面记录修改程序的步骤,增加或是删除了哪些指令等。并在 程序的编辑条注释中做记录,以备下次修改。 4、 在.doc 文件中详细记录修改程序的原因,所出现的故障现象是什么, 故障是如何排除的。 5、 在.doc 文件中标注修改后所现用的程序全名,包括日期与简要的修 改标题。 6、 把过时与现用的程序用,过时文件夹与现用文件夹分开整理,按日期 排列。 这样每次所作的修改就有了详细的档案,便于以后的程序修改。现用的程 序是标有最近日期的程序。 这样的工作步骤同时也适用于电气图纸的修改。 ―――――――――――――――――――――――――――――――――― ――――――――――――

实际上, 我以前也发现一段程序在过了一段时间后再阅读的话,就会变得 难懂,即使有比较好的注释的话,对于结构、逻辑较为复杂的程序,注释也不可 能写的过于详细 (注释如果写的过于详细,程序一旦有改动其维护量就会显得比 较大,所以一般注释写的精炼点是比较合适的),所以往往很难一时半会看懂自 己从前写的程序,这是不是很尴尬呢? 我从 06 年开始用 excel 记录调试中的情况,内容包括:日期、修改内容、 完成情况。 比如某天由于某个需求改动了几个程序段,就在记录里面注明修改的

原因、修改的具体程序块号,并在完成前把该单元格用黄色标记好,提醒自己要 完成该程序的修改和下载,在完成后就去掉黄色标记并注明何时完成。 这种记录内容不仅仅局限于程序修改, 而应当是所有跟自己负责的工程相 关的事情,比如硬件的变动、图纸的修改、工艺情况的变化等等,我把这份文件 称之为“某某工程调试记录”。对于每个项目都要建立这么一个 excel 文件。 这种记录在实践中是非常有用的,俗话说“好记性不如烂笔头”。曾经一 个项目过程中多次发生柜内硬件修改,由于工程进度紧急,所以图纸的修改都是 由现场调试人员在原有图纸上临时画画改改, 到了工程结束后有些修改后的草图 已经遗失了,幸亏工程调试记录表上有详细的记录才确保最终图纸的修改。 另外, 每次修改后都要备份一次程序,备份文件名称的后缀要加上备份的 日期时间。每隔 1-2 月要把电脑上的程序和文档备份到移动硬盘上去,以免电 脑故障等造成重大损失。 罗罗嗦嗦说了这么多,其实各人有各人的工作习惯,不能强求都一样,只 要顺利、有效的完成工作就可以了,还是一句老话:条条大路通罗马。

由IEC61131-3国际标准所想到的... 由IEC61131-3国际标准所想到的... 由IEC61131-3国际标准所想到的... 作者:yzdatou 提交日期:2006-5-23 12:52:00 ??公司去年发了个文, 准备搞 plc 程序的标准化工作,也就是把各类常用功能 做成模块,给工程技术人员使用,减少大家的工作量。文中以西门子和 AB 两家 plc 为例子,倒是阐述得很好(公司里面高手多啊,偶还要努力再努力),作者 比较赞同采用结构化文本进行基本模块得开发工作, 这样便于不同平台的代码移 植。这更增加了我在 step7 里面用 scl 的兴趣了:) ??最近的工作里面,也开始注意模块通用的工作。我把重新整理工程,把通用 模块梳理了一下,放到一个 library 中,然后 project 去调用 lib 中的模块,而 且这样的话,模块有错统一修改很方便。以后其他工程也可以往这个 library 中继续添加模块,形成我自己的模块库。 ?? ??转载: ??-------------------------------- --------- ??编者按IEC 61131-3是第一个为工业控制系统提供标准化编程语言的国际标准。 该标 准针对工业控制系统所阐述的软件设计的概念和软件模型等适应了当今世界软 件、工业控制系统的发展方向,是一种非常先进的设计技术。符合IEC 61131-3的软件系统是一个结构完美、可重复使用、可维护的工业控制系 统软件, 不但能被应用在PLC?可编程控制器?,而且还能被应用在运动控制 系统、分散型控制系统和软逻辑/PC、SCADA等。本专题包括六篇文章, 第一、二、三、四、六篇是对IEC 61131-3国际标准的介绍,第五篇是对IEC 61131国际标准通信 部分的介绍。第一篇文章主要对IEC 61131-3国际标准的一些主要特点、 国际组织及其在国内外的发展情况作 了简单介绍; 第二篇文章通过对IEC国际标准的两个模型的介绍,从理论角度 对IEC国际标准所具备的诸多优点做了理论剖析和阐述;第三、第四篇文章主 要对IEC 61131-3国际标准的两种文本化语言IL和ST及三种图形化语言FB D、LD和SFC做了简单介绍,使读者对IEC 61131-3程序语言及其编程有一基本认识;第六篇文章包括两部分:第一 部分主要介绍了一个IEC

61131-3编程系统所应具有的一些主要特征, 第二部分举例说明了如何用 IEC 61131-3编程系统解决一个实际的工业问题。第五篇文章从理论 上对IEC 61131-3编程系统如何与其它的工业自动系统进行通信和集成做了简介, 以让读者了解到IEC 61131国际标准所具有的开放性和先进性。 ??摘要 ?? ??本文主要对IEC 61131-3国际标准的一些主要特点、国际组织及 IEC 61131-3国际标准在国内外的发展情况作了简单介绍,以让读者 对IEC 61131-3国际标准的基本情况及其所具有的诸多优点有一总体认识, 为读 者进一步阅读后续文章做了必要铺垫。 ?? ??IEC?International Electrotechnica l Commission?61131-3是IEC 61131国际标准的第三部分, 是第一个为工业自动化控制系统的软件设计提 供标准化编程语言的国际标准, 它得到了世界范围的众多厂商的支持,但又独立 于任何一家公司。该国际标准的制定,是IEC工作组在合理地吸收、借鉴世界 范围的各可编程序控制器PLCs?厂家的技术、 编程语言、 方言等的基础之上, 形成的一套新的国际编程语言标准。 61131-3国际标准随着可编程序控制 器PLCs技术、编程语言等的不断进步也在不断地进行着补充和完善。 ?? ??61131-3国际标准得到了包括有美国AB公司、 德国西门子公司等世 界知名大公司在内的众多厂家的共同推动和支持, 它极大地改进了工业控制系统 的编程软件质量及提高了软件开发效率;它定义的一系列图形化语言和文本语 言, 不仅对系统集成商和系统工程师的编程带来很大的方便,而且对最终用户同 样带来很大的方便; 它在技术上的实现是高水平的,有足够的发展空间和变动余 地,能很好地适应于下一个世纪。IEC 61131-3标准最初主要用于可编程序控制器?PLCs的编程系统, 但它 目前同样也适用于过程控制领域、分散型控制系统、基于控制系统的软逻辑、S CADA等。 61131-3国际标准正在受到越来越多的国内外公司、厂商的 重视和采用。 ?? ??IEC 61131国际标准包括8部分。Part 1:综述;Part 2:硬件;Part 3:可编程语言;Part 4:用户导则;Part 5: 通信;Part

6:现场总线通信;Part 7:模糊控制编程;Part 8:编程语言的实 施方针。 IEC 61131-3是IEC 61131中最重要、最具代表性的 部分。IEC 61131-3国际标准将是下一代PLC的基础。IEC 61131-5是 IEC 61131的通信部分,通过IEC 61131-5,可实现可编程序控制器与其它工业控制系统、如机器人、数控 系统、现场总线等的通信。 ?? ??1 采用IEC 61131-3国际标准的必要性 ?? ??1.1对系统“开放性”的要求 ?? ??成熟的工业控制市场已经开始对 “开放性系统” 产品提出了越来越多的要求, IEC 61131-3国际标准正是适应了这种要求。 ?? ??1.2传统PLC梯形图编程的缺点 ?? ??不同PLC产品的梯形图符号和编程变化很大。 ?? ??有限的数据封装能力,很难将一个复杂的程序分解为数个简单的程序部分: 现在的梯形图编程,一个程序块的内部数据还缺乏对外部隐藏其数据的封装能 力,因而,一个大的程序要想分解为几个简单的小程序,并且各个小程序之间具 有的清晰的接口是很困难的。 ?? ??有限的程序可重用性: 程序可重用性是现在编程的一个发展趋势,传统的P LC不能通过重复调用相同的逻辑策略和算法实现程序重复使用。 ?? ??不支持数据结构: 在许多复杂的应用中,程序需要把一些数据组织成象高级 语言PASCAL、 C中的数据结构那样的数据类型,而目前的梯形图程序还不 支持数据结构。 ?? ??支持有限的对顺序操作功能的编程: 复杂的PLC梯形图编程对顺序操作的 处理方法是, 为每一个顺序状态提供一个状态位,这种对顺序操作的处理能力是 很有限的。 ??

??程序执行的局限性: PLC程序是顺序执行的,执行一次程序的时间取决于 程序的长短和复杂性,对很大和很复杂的程序,执行一次程序的时间就较长,这 对有些对时间有苛刻要求的应用,是有很大的局限性的。 ?? ??执行算术操作的局限性: 传统的PLC梯形图程序对算术操作处理是很困难 的。 ?? ??1.3采用IEC 61131-3国际标准的优点 ?? ??因采用一致的IEC 61131-3国际标准编程,各个PLC厂家的编 程系统都是统一的,因而,对用户来说具有如下优点: ?? ??减少了人力资源?如培训、调试、维护和咨询?的浪费 ?? ??高水平软件再使用性,它主要解决控制中的问题 ?? ??减少了编程中的误解和错误 ?? ??适用于宽环境范围的编程技术:通用的工业控制 ?? ??连接来自不同程序、项目、公司、地区或国家的部件 ?? ??2IEC 61131-3国际标准的主要特点 ?? ??2.1IEC 61131-3标准开发的程序具有完美的结构,支持进行“顶-底”或“底- 顶” 的程序开发。 允许一个程序被分解为几个功能元素即程序组织单元?POU s?,程序组织单元包括功能块、功能和程序。 ?? ??2.2新标准的PLC程序对错误类型数据具有很强的检测能力。当一个程 序员试图向一个变量写一个错误类型数据时, 新标准的PLC程序能自动检测出 来,传统的PLC程序是无能为力的。 ?? ??2.3对程序执行的完全控制能力。传统PLC程序只能顺序扫描和执行程 序,对某一段程序不能按用户的实际要求定时执行。IEC

61131-3程序允许程序的不同部分在不同的时间、以不同的比率并行执 行。 ?? ??2.4支持复杂的顺序操作功能处理。 IEC 61131-3程序可通过一 个称为顺序功能图的图形化语言将一个复杂的顺序功能行为或操作分解并进行 描述。 ?? ??2.5支持数据结构。在一个IEC 61131-3程序中,可象高级语言PASCAL、C那样,用户在程序中对 某一具体设备定义数据结构类型数据,这大大地增强了程序的可读性,并保证了 结构数据能正确地存取。 ?? ??2.6可柔性地选择编程语言。IEC 61131-3有三种图形化语言和两种文本语言, 编程人员可根据自己的喜好 及实际应用的要求自由地选择这五种语言。 一个程序的不同部分可用任何一种语 言来描述。 ?? ??2.7独立于任一目标系统的编程系统。 IEC 61131-3提供了标准 的程序执行的语言和方法,独立于任一具体的目标系统,所以,IEC 61131-3可最大限度地运行在来自不同目标系统的PLC上。 ?? ??3IEC 61131-3国际标准在国外的发展 ?? ??3.1PLCOpen介绍 ?? ??PLCOpen是一独立于生产商和产品的国际性协会,主要工作就是支 持、宣传和推广IEC 61131-3国际标准。 PLCOpen的目标是:通过在众多的程序开发环 境中应用这个标准, 用户即可在不同品牌产品和不同类型的控制之间移植控制程 序,并且能方便地互换。为了达到这个目标,PLCOpen致力于提供与/或 使用IEC 61131-3的兼容产品。 为保证产品兼容性,由PLCOpen授权的研究 机构颁发合格的认证证书, 从而促进该标准的实施。PLCOpen成立于19 92年, 总部设立于荷兰, 其支持机构分设于美国IL的Elgin和日本的东 京。销售商、用户和研究单位作为PLCOpen会员单位会享有很多利益。P LCOpen的网站地址为: http?//www. plcopen. org, PLCOpen出版季

转载:各大自动化公司谈 plc 和 dcs 区别 转载:各大自动化公司谈 plc 和 dcs 区别 作者:yzdatou 提交日期:2006-8-27 22:37:00 ??看了下面有些人的说法,有点不同看法。 ??比如 ge 那位先生,说“PLC 采用梯形图逻辑来实现过程控制,对于仪表人 员来说相对困难。尤其是复杂回路的算法,不如 DCS 实现起来方便。”, ??---这说的是多年前的 plc 吧! ?? ??-------------------------------- --------- ??-------------------------------- --------- ?? PLC 与 DCS 无法比较,PLC 是控制器,是孤立的产品,而 DCS 是系统。但 P LC 可以与 DCS 的控制站比较,PLC 的循环周期在 10 毫秒左右,而 DCS 控制站在 500 毫秒左右,PLC 的开放性更好,作为产品其独立工作的能力更强。 ?? —— OMRON 公司 陆斌 ?? ?? DCS 是一个系统包括上位软件、 网络与控制器, PLC 只是一个控制器, 而 要构成系统还需要上位 SCADA 系统和与之相连的网络。对 PID 回路控制,现在三 菱的过程控制器也可以实现象 SAMA 组态一样的 FBD 编程;DCS 系统更大,控制 的回路数目更多,有比较多的控制和算法,可以完成比较复杂的回路间的控制。 硬件可靠性差不多。DCS 可以做到 I/O 的冗余,PLC 则不可以。相对而言,PLC 构成的系统成本更低。 ?? —— 三菱电机自动化精密控制部经理宋葭晖 ?? ?? DCS 是一种“分散式控制系统”,硬件上包括现场控制器、操作员站计 算机、 工程师站计算机, 以及联系他们的网络系统; DCS 软件上是一个整体方案, 解决的是一个系统的所有技术问题,系统各部分之间结合严密。 ?? ?? PLC 是一个装置,硬件上等同于 DCS 中的现场控制器;软件上是一个局 部方案,站与站之间组织松散。 ?? —— 贝加莱负责 APROL 产品应用开发的技术经理陈志平 ??

??

分析 DCS 与 PLC 的区别,最关键的是两点,一是 DCS 是分布式控制,拥

有全局数据库;二是 PLC 是顺序扫描机制,DCS 是以时间为基准的控制。我们的 系统符合第一点,例如一个 I/O 标签的修改,在 HMI 也可以同步体现。 ?? ——罗克韦尔自动化过程市场产品经理 王广野 ?? ?? DCS 系统采用一个统一的开发环境,工程师站(过程管理层)用于现场 控制站的组态,控制算法的开发以及流程图画面的开发。采用一个统一数据库! 而 PLC 用于过程控制需要不同的开发环境,首先要对 PLC(相当于 DCS 的现场控 制站层)进行逻辑开发,建立相应的数据库,然后再通过相应的上位机软件,例 如 GE Fanuc 的 Proficy HMI/SCADA - iFIX 或 CIMPLICITY Plant Edition 软件,建立与 PLC 相对应的数据库,然后进行流程图画面的开发。 ?? ?? DCS 开发控制算法采用仪表技术人员熟悉的风格,仪表人员很容易将 P &I 图转化成 DCS 提供的控制算法,而 PLC 采用梯形图逻辑来实现过程控制,对 于仪表人员来说相对困难。尤其是复杂回路的算法,不如 DCS 实现起来方便。 ?? ?? DCS 系统通常提供完整的系统给用户,包括机柜,电源,工程师站,操 作员站,用户只需在现场简单的安装。而 PLC 则需要系统集成。 ?? ?? DCS 实现顺序连锁功能相对于 PLC 来讲是弱势,且逻辑执行速度不如 P LC, 也不如 PLC 编程方便。 ?? ?? DCS 的现场控制站层 ‘通常采用集中式控制,尽管支持远程分布式 I/O, 但由于成本原因, 很少采用。 PLC 基于现场总线的远程分布式 I/O 更灵活易用,能有效的节省接 而 线成本。 ?? —— GE Fanuc 全球自动化解决方案中国区总经理贲志刚 ?? ?? DCS 与 PLC 在硬件平台基本一致,差异在软件与数据平台上。PLC 比较 开放,不同厂商的产品互联性好。西门子的 PCS7 与 PLC 的开发是独立进行的, 虽然采用了 PLC 的硬件平台,但在系统构架、编程组态方式等都不一样. ?? ——西门子公司 PCS7 市场推广经理 谢王争 ?? #日志日期:2006-8-27 星期日(Sunday) 晴 推荐指数:0 举报

评论人:yzdatou 评论日期:2006-8-28 20:38

??看到一篇文章,写得很好。 ?? http://bbs.gongkong.com/detail.asp?id=328768 ?? ??其中作者对于 plc 和 dcs 的论述很是赞同,贴一部分在这里: ??-------------------------------- -- ??在经过数十年的发展后, 突然大家对于 DCS 和 PLC 的概念含糊不清了,因为 PLC 也在体系中加入了通用型的 CPU,特别软逻辑 PLC 在指令处理原理方面与 DC S 并无二样,只是上位机软件的用户指令不同。不过 DCS 也不是原地不动,DCS 在网络方面、多 DPU 协同工作方面、冗余方面都有了长足的发展,并大多数采用 了 X86 的体系架构,充分利用了 PC 的技术成果。 ?? ?? 那么现在的 DCS 与 PLC 的差别是相当小,从具体的技术而言,DCS 有基于令牌网 络的分布式实时数据库, 可以通过全量通信来保证每个 DPU 内的映象数据都是最 新的,而 PLC 在这一块更多的注重单机工作,就算是联网,也假定两台 PLC 之间 只需要很少量的数据交换,所以采用的主从结构的请求应答方式通信。 ?? ?? 在发展过程中 PLC 与 DCS 都受到 PC 技术发展的深远影响,特别是 DCS,目前的 D CS 大多采用 PC_BASE 结构,对 PC 技术的吸收也相当彻底,而 PLC 则是在 80 年 代未 90 年代的软 PLC 开发浪潮中大力吸收了 DCS、PC 的技术,特别是在 IEC611 31-3 标准制定出来后,产生了一系列的以开发软 PLC 软件的公司,这些公司以 欧洲公司居多,这与欧洲公司的开放软件组织成熟有一定关系,同时 IEC611313 对于日式 PLC 的编程方式基本是排斥的,所以相当多的欧洲企业有兴趣进军这 个行业,这方面以 KW、一方梯队、ISAGRAF、3S 等尤为突出,这些公司对于工控 软件化和标准化起到了相当重要的作用, 目前的各大工控公司在开发新的软件时 都会对这几家公司的产品进行深入的研究。 ?? ?? 最初软 PLC 的开发大多是以 PC_BASE 为蓝图的,只是在后来才慢慢的加入 ARM、 51、AVR 等 CPU 的支持,并一直强调开发的模块化结构,使移植变得更为容易。 ?? ?? 目前的情况是 PLC 按点数和价格分成了大中小微几种不同的档次, 同时按实现分 成了硬 PLC、软编译型 PLC、软解释型 PLC 三种,按结构分成了背板式、模块式、 分布式几种。其中大中型 PLC 更是在功能上加入了 DCS 和 PC 的许多功能,使其

可以向上吞并一些 DCS 的市场,如现在很多自备电厂和化工行业都不再使用 DCS 而改用 PLC 去完成,横向来说 PLC 发展出了许多专用的 PLC,包括数控专用、车 用、设备专用等。 ?? ?? 同时 DCS 也向下发展了许多有个性的产品,使其可以代替一部分 PLC 的产品,如 淅大中控、淅大中自的某系列产品就做得比较小,只有几个回路,带显示屏,可 以满足一些行业的需要。

转载一篇很强的文章,佩服作者的眼界 转载一篇很强的文章,佩服作者的眼界 作者:yzdatou 提交日期:2006-5-24 9:48:00 ??控制器三十年和未来十年控制器的发展方向 ??作者: 王晟磊 ,2006-5-10 19:58:00 发表于:《国产 PLC 论坛》 共有 9 7 人回复,2620 次点击 加为好友 发送留言 ?? ?? 这一阵子与各位大佬争论了半天 PAC 啊 PLC 之类的, 争论到目前这个阶段感觉再 争论已很没意思, 想了想, 还是写一个控制器的历史和未来十年控制器的发展方 向来做一个结论吧。 ??一、历史: ?? 1.1 PLC & DCS ?? 控制器在七十年代开始从传统使用仪表和继电器组对应的两个不同应用领域派 生出来 DCS 和 PLC 两类产品。这两类产品在初期确有相当多的不同,DCS 对于回 路控制这一块更为重视, PLC 对于离散的逻辑控制更为重视。当时的 DCS 使用 而 通用 CPU,采用软解释方式处理程序,而 PLC 依靠类拟于 AMD2910 的位块处理器 处理逻辑,相对而言在系统结构上,DCS 更偏向软件,而 PLC 更像传统的硬件继 电器组。 ?? ?? 在经过数十年的发展后,突然大家对于 DCS 和 PLC 的概念含糊不清了,因为 PLC 也在体系中加入了通用型的 CPU,特别软逻辑 PLC 在指令处理原理方面与 DCS 并 无二样,只是上位机软件的用户指令不同。不过 DCS 也不是原地不动,DCS 在网 络方面、多 DPU 协同工作方面、冗余方面都有了长足的发展,并大多数采用了 X 86 的体系架构,充分利用了 PC 的技术成果。 ?? ?? 那么现在的 DCS 与 PLC 的差别是相当小,从具体的技术而言,DCS 有基于令牌网 络的分布式实时数据库, 可以通过全量通信来保证每个 DPU 内的映象数据都是最 新的,而 PLC 在这一块更多的注重单机工作,就算是联网,也假定两台 PLC 之间 只需要很少量的数据交换,所以采用的主从结构的请求应答方式通信。 ?? ??

在发展过程中 PLC 与 DCS 都受到 PC 技术发展的深远影响,特别是 DCS,目前的 D CS 大多采用 PC_BASE 结构,对 PC 技术的吸收也相当彻底,而 PLC 则是在 80 年 代未 90 年代的软 PLC 开发浪潮中大力吸收了 DCS、PC 的技术,特别是在 IEC611 31-3 标准制定出来后,产生了一系列的以开发软 PLC 软件的公司,这些公司以 欧洲公司居多,这与欧洲公司的开放软件组织成熟有一定关系,同时 IEC611313 对于日式 PLC 的编程方式基本是排斥的,所以相当多的欧洲企业有兴趣进军这 个行业,这方面以 KW、一方梯队、ISAGRAF、3S 等尤为突出,这些公司对于工控 软件化和标准化起到了相当重要的作用, 目前的各大工控公司在开发新的软件时 都会对这几家公司的产品进行深入的研究。 ?? ?? 最初软 PLC 的开发大多是以 PC_BASE 为蓝图的,只是在后来才慢慢的加入 ARM、 51、AVR 等 CPU 的支持,并一直强调开发的模块化结构,使移植变得更为容易。 ?? ?? 目前的情况是 PLC 按点数和价格分成了大中小微几种不同的档次, 同时按实现分 成了硬 PLC、软编译型 PLC、软解释型 PLC 三种,按结构分成了背板式、模块式、 分布式几种。其中大中型 PLC 更是在功能上加入了 DCS 和 PC 的许多功能,使其 可以向上吞并一些 DCS 的市场,如现在很多自备电厂和化工行业都不再使用 DCS 而改用 PLC 去完成,横向来说 PLC 发展出了许多专用的 PLC,包括数控专用、车 用、设备专用等。 ?? ?? 同时 DCS 也向下发展了许多有个性的产品,使其可以代替一部分 PLC 的产品,如 淅大中控、淅大中自的某系列产品就做得比较小,只有几个回路,带显示屏,可 以满足一些行业的需要。 ?? ?? ?? ??以下是对《控制器三十年和未来十年控制器的发展方向》的回复: ??共有 97 人回复 分页: 1 2 ?? 王晟磊: 引用 加为好友 ?? ?? 1.2 现场总线和 FCS ?? 发送留言 2006-5-10 19:59:00

在软 PLC 出现后不久,一场新的技术浪潮冲进了工控市场,这就是现场总线,同 时现场总线派生出来 FCS 的理念,在当初,我也是 FCS 的拥护者和开发者,深信 在芯片能力越来越强, 价格越来越低的今天 FCS 才是未来的控制系统。可是在实

际的开发和应用过程中, 我们发现全分散之后不光成本升高了,维护也变得更困 难,因为所有的节点都依赖网络,而网络的可靠性就变成了一个瓶颈。这么长的 网线, 有任何一段出现短路或者开路都会有致命的损伤,如果采用冗余的网络和 系统,则在成本方面大增。并且分散后的逻辑,会因为一个中间节点的故障导致 整个系统的重大错误, 当然如果用户对分布式控制理念有很深的理解当然没有太 大的问题, 但事实上让用户工程师理解这么复杂的拓朴结构和考虑这么复杂的现 场结构是不现实的。 ?? ?? 除非是在未来的神经元网络芯片研发方面有新的发展, 可以在某一个逻辑运算节 点损坏后自动由另一个逻辑节点替代,同时需要更好的基于网络的逻辑编程软 件, 这个软件可以对于分布式的控制器进行合理的逻辑切分,并且对任一个节点 损坏后出现的状况能有合理的处理方式,或是保护或是不理。FCS 发展的理想地 步是只有传感器和执行器而没有单独的控制器, 所有的传感器将自己的参数传给 需要的执行器, 各个执行器根据网络得到的参数运算并进行控制,同时将自己运 算得到的中间值传给其它的执行器。因为有了中间值的问题,所以整个控制网络 将变得相当复杂,每个有中间值的点都必需有合理的处理策略,理想的情况下, 是当中间逻辑点出现问题后, 能由任一个逻辑点进行替代,或者进行合理的保护 策略。 在可以预见的时间内我们将看到能满足所有要求的全新的 FCS 出现,在通 信方面也会变得更灵活和更可靠。 ?? ?? 目前在经过若干年的研究后,大家都形成了一个暂时的共识,那就是:根据现场 的实际情况选择分布还是集中, 很多情况下是一种整体分散局部集中的方式是最 适合的。 比方在冶金行业, 很多现场使用 S7-400 做为主站, S7-300 做为子站, 用 把子站分布在现场, 每个子站负责一个具体的任务可者一个工段。这样一方面当 网络出现问题时, 各个子站可以很好的处理自己的任务,同时每个子站到设备的 距离减至了 100 米以内,使布线和维护变得相对简单了。 ?? ?? 现场总线的技术浪潮中有一个很有意思的情况,那就是 IEC61158 的制定过程, 这个过程充分的反应的各大利益集团的冲突,大家为了保护自己的利益在长达 1 5 年的时间内竟然未能达成一个真正有意义的协议,最后的结果是变成了 8 种标 准并存,后来又扩到了 13 种(有 14 种标准,但有一种退出了),标准的范围也 从最初的涵盖过程、楼宇、电力等退到了只包含过程控制,这次争论的结果是当 时的制定委员会的负责人在标准通过的当天宣布辞职,他说: “太多的标准意味 着没有标准” 其实我个人认为做一个统一的标准包含所有行业目前来看不太现 。 实,各个行业的关注点也不同,像一般过程控制大家可能选 PROFIBUS 等,楼控

可以选 LONWORKS,数采和单一设备间通信可以选 MODBUS 等。但同一行业内实在 应该制定一个统一的标准, 我就常常为了联西门子或者 AB 的控制系统而伤脑筋。 ?? 我个人对 PROFIBUS 比较有感情,因为在前几年用了两个人年做了一块 PROFIBUS 的主站芯片,用 FPGA 做的,把整个 PROFIBUS-DP 的数据链路层的状态机完整实 现了。PROFIBUS 可以说是一个很好的块通信协议,对于可靠性方面处理是相当 完备的,完全是德国人的思维方式,相当严谨,诊断、参数化、配置、诊断、数 据交换。PROFIBUS 最大的优点是状态机与通用处理器之间的多缓存结构,使通 信的实时性和可靠性得到了保护。 ?? ?? ?? 王晟磊: 引用 加为好友 发送留言 2006-5-10 20:00:00 ?? ?? 1.3 PC_BASE ?? PC_BASE 刚出现时也是在工控界引起了很大的反响,那个时代的控制器都是相当 贵的,我记得当时一块西屋公司 WDPF 控制系统的 250M 硬盘卖 5 万块,而 PC 硬 件的低成本对于大家来说是相当大的吸引力。当时的工程师分为两派,一派认为 PC 是为商用开发的,控制界只能吸收其有用的技术,而另一派认为 PC 技术的广 泛应用, 有如此之多的软件和硬件资源可供利用,对于控制器的标准化和降低成 本有很大的好处。 ?? ?? 在这个过程中,国内的工控厂商包括 DCS、PLC 和各种专用控制器都广泛的采用 了 PC_BASE 结构来开发新产品,当时大多使用 386 和 486,其中 ICOP 的 386X_M 6117D 是其中最好的工业级 386 CPU,可惜我只能买到 M6117C 只好改用了 MAPLE 的 486DX4-100M。 ?? PC_BASE 在近些年的发展之中遇到了一个很大的问题, 当初大家之所以选用 PC_BASE 是因为开发方便,特别是 DOS 年代和 WIN98 年代,大家可以在一周的时 间编写出一个很复杂的控制类程序, 在刚有网络的时候, 大家通过 BBS 互通有无, 当时感觉有一种一切均在掌握之中的感觉。 ??现在 DOS 使用者越来越少, 于是很多的厂商在引导工程师走 WIN 的平台,而 WIN 对于底层的屏蔽使广大底层软件开发工程师感到郁闷,因为 WINNT 体系的 W DM 驱动程序开发需要用到 DDK 工具,就算是使用 XTOOLS 之类的简易开发工具又 让人有一种隔鞋搔痒的感觉, PC_BASE 的开放性和方便性大大的被抵消了。同 让 时 WINNT 体系的低可靠性让大多数工程师望而止步。 ?? 2.0 以前的 WINCE 也是一个让人发狂的软件,不光可靠性差,实时性也相当 差劲,让人怀疑这玩意只能用来做做显示屏,后来 wince2.0 出来后还好一点,

但个人对 WINCE 还是有抵触, 可能是当初吃苦头吃多了,总认为一个工控产品不 适合选用 WINCE 做操作系统,因为 WINCE 的系统结构包括兼容性、开放性、图形 方面的优点都是针对手持消费类产品的,如 PDA 之类,对于工控需要的高实时性 和高可靠性实在有点不及格。 这一方面 linux 要更差一些,因为 linux 是为商用 电脑开发的,很多公司都在为 linux 进行减肥并把抢占式的调度机制强行加入 l inux, 从而可以使嵌入式 linux 可以用在嵌入式的环境,但 WINCE 有的缺点它也 都有,同时还要更严重,所以也不是一个好的选择。在操作系统方面,其实像 V XWORKS 和 NECLUES 之类的可能是一个不错的选择,因为用户类多是工业方面的, 对系统的可控制性比较强, 如果是高要求的开发者还可以买源码,这样如果操作 系统内有问题就可以自己调试,我们就发现 NECLUES 操作系统的 8019 驱动方面 有问题,主要是实时高速通信会有堵塞的问题,后来发现这一部分代码是从 lin ux 的源码中拷过来的,所以 lin


相关文章:
java开发ModBus工业控制通信协议CRC16验证 通过测试
java开发ModBus工业控制通信协议CRC16验证 通过测试_信息与通信_工程科技_专业资料。java开发ModBus工业控制通信协议CRC16验证通过测试package...
MODBUS_RTU通讯协议_图文
? 百特工控 福州福光百特自动化设备有限公司 MODBUS 通讯协议 使用手册 1. RTU 方式通讯协议 1.1. 硬件采用 RS-485,主从式半双工通讯,主机呼叫从机地址,从机...
Modbus-RTU通信协议
DCS 或与兼容 ModBus 协议的第三方 设备之间可以连成工业网络, 构建各种复杂的监控系统,并利于系统的维护和扩 展, 这个通讯协议已广泛被国内外电力行业及工控行业...
MODBUS协议主站驱动程序
MODBUS协议主站驱动程序_信息与通信_工程科技_专业资料。MODBUS协议主站驱动程序 1 MODBUS 规约简介 Modbus 通讯协议广泛应用于工业控制领域的通用通讯协议,几乎所有的主...
MODBUS_RTU通讯规约
广泛的系统集成: PDM 系列仪表/变送器提供了标准的 RS-485/422 通讯接口及 ModBus 通讯协议, 这个 通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准...
基于MODBUS协议的上位机与PLC及智能仪表之间的通信实现...
基于MODBUS协议的上位机与PLC及智能仪表之间的通信实现方法_信息与通信_工程科技_专业资料。基于 MODBUS 协议的上位机与 PLC 及智能仪表之间的通信实现方法 摘要:介绍...
Modbus-RTU通信协议
DCS 或与兼容 ModBus 协议的第三方 设备之间可以连成工业网络, 构建各种复杂的监控系统,并利于系统的维护和扩 展, 这个通讯协议已广泛被国内外电力行业及工控行业...
modbus通信协议实现范文
modbus通信协议实现范文_计算机软件及应用_IT/计算机_专业资料。modbus通信协议实现...TCP / IP 第1章 1.1 研究背景 引言 在现代化工业控制中, 由于被控对象、...
工业控制系统通讯协议的描述方法
工业控制计算机的通信[J],兰州铁道学院学 报,1998.17(4),92-97 ModBus 通讯协议软件包 ModBus 通讯协议简介 Modbus 协议是一种已广泛应用于当今工业控制领域...
百特工控MODBUS_RTU通讯协议
百特工控MODBUS_RTU通讯协议_信息与通信_工程科技_专业资料。百特工控MODBUS_RTU通讯协议? 百特工控 MODBUS 通讯协议 使用手册 福州福光百特自动化设备有限公司欢迎访问...
更多相关标签:
工控通信协议 | modbus通信协议 | modbus rtu通信协议 | modbus tcp 通信协议 | modbus通信协议及编程 | modbus通信协议手册 | 工控协议 | 工控协议有哪些 |