logo资料库

西门子S7_200自由口通讯的两种VC实现方法.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
J$ 西门子 !"#$%% 自由口通讯的两种 &’ 实现方法 西门子 !"#$%% 自由口通讯的两种 &’ 实现方法 何相勇 刘顺波 高运广 成 浩 第二炮兵工程学院("(%%$)) 8d15 L2L/0 E15BW55/5 4d/ 1.L3/./Q4 -P !6A,AD! !" #$%%*+’ P0// L-04 B-..WQ1B241-QI64 W5/E !6,H86’ 1Q540WB41-Q 1Q *+’ 2QE 4d/ HB41S7 B-Q40-35#,!’-.. 2QE 4d/ ’3255 -P !/0123*-04 1Q *’ 4- E/51VQ 4d/ B-..WQ1B241-Q L0-V02.N2QE V2S/ ./012341 L2045 -P B-E/5 -P 4d/ L0-V02.I 5678,290YB-..WQ1B241-QN*+’NP0// L-04N&15W23 ’ee 摘 要 本 文 讨 论 了 西 门 子 !"#$%%*+’ 自 由 口 通 讯 的 实 现 , 在 *+’ 端 使 用 !6,H86’ 指 令 、 在 *’ 端 使 用 &’JI% 中 的 ,!’-.. 控件和 ’!/0123*-045 类实现了通讯程序的设计,并给了相应的程序的部分代码。 关键词:通讯 ,*+’,自由口,&15W23 ’ee 在 工 业 控 制 过 程 中 , 常 常 需 要 用 一 台 上 位 机 去 控 制 多 台 *+’,实现分散控制与集中管理。本文在 !"#$%% *+’ 端利用自 由口通讯,在 *’ 端分别利用 ,!’-.. 控件和 ’!/0123*-045 类 编写通讯程序,实现它们之间的信息交换。 ! "#$%&& 的自由口通讯模式 !"#$%% 支 持 多 种 通 讯 模 式 ,如 点 点 接 口(**6)、多 点 接 口 (,*6)等。**6 等通讯协议主要用于西门子系列产品之间的通讯 以及对 *+’ 编程。在自由口模式下,可由用户控制串行 通 讯 接 口,实现用户自定义的通讯协议。用户可以用梯形图程序调用接 收 中 断 、发 送 中 断 、发 送 指 令(7,8)、接 受 指 令(9’&)来 控 制 通 信操作。在自由口模式下,通信协议完全由梯形图程序控制。 !"#$%%’*: 上 的 通 信 口 是 与 9!;<) 兼 容 的 = 针 > 型 连 接器,*+’ 还提供了实现 9!;<) 与 *’ 机上 9!$?$’ 相连接 的 *’ @ **6 电缆,利用它可以方便地实现 !"#$%% 系列 *+’ 与 *’ 之间的硬件连接。 !"#$%% 的 编 程 软 件 为 !8A*"#,1B0- @ C6D?$, 该 软 件 有 !8+、+2EE/0 和 FG> 三 种 编 程 模 式 , 有 !6,H86’ 指 令 和 6A’(?(#? 指令两种指令。 本 文 所 给 出 的 范 例 是 使 用 !6,H86’ 指令的 !8+ 编程。 % "#$%&& ’() 端的通讯程序实现 $I( !"#$%% 自由口的初始化 !,G?% 是 !"#$%% 自由口 % 的 控 制 寄 存 器 ,!,G(?% 是 自 由口 ( 的控制寄存器,这些字节设置自由口的操作方式。 在本文中,选择自由口 % 通讯,=J%% 波特率,< 位字符,( 位 停 止 位 , 无 校 验 。 在 这 种 选 择 之 下 , 自 由 口 的 初 始 化 代 码 为 %%%%(%%(,可以通过如下的语句实现: +> !,%I% +> =,!,G?% 在程序第一次扫描的时候,调用含有通讯初始化语句的子 程序,对自由口进行初始化。通常在初始化的过程中还要连接口 ( 的接收完成时的中断和和发送完成时的 中 断 , 中 断 连 接 实 现 的指令为: +> !,%I% H8’K 7,8B-.L3/4/ GM= @ @ 3 连接口 % 发送完成中断 +> !,%I% H8’K 9’&B-.L3/4/ GM$? 这两个中断是为了在发送和接收结束之后,把相关的设置 @ @ 连接口 % 接收完成中断 和变量恢复到控制程序中的设置和变量。 $I$ 自由口通讯的实现 发送子程序首先要通过设置 !,<"I" 为 % 来停止端口 % 的 接 收 ,然 后 把 数 据 写 入 缓 冲 区 ,对 数 据 进 行 转 换 ,使 用 发 送 指 令 7,8 发送数据。主要的指令及其注释如下: +> !,%I% 9 !,<"I"N GM( ,O&G GM(N&G()) K8H &G(?)N&G()JNGM(J 7,8 &G()),GM% @ @ 根据实际的需要写入足够的数据 @ @ 将 &>(?) 中的数据转换成 H!’66 码 @ @ 口 % 发送 接收子程序首先要通过设置 !,<"I" 为 % 来停止端口 % 的 接收,然后使用接收指令 9’& 接收数据,把数据写入缓冲区,对 数据进行译码。主要的指令及其注释如下 +> !,%I% !,<"I"N GM( 9 9’& &G()),GM% ,O&G GM(N&G()) 应的寄存器 @ @ 口 % 发送 @ @ 根据实际的 需 要 把 接 收 的 数 据 写 入 相 K8H &G(?)N&G()JNGM(J @ @ 将 &G(?) 中的数据转换成 H!’66 码 在通讯中,通常还要指令本身的校验,必须加入指令校验子 程序,由于各种通讯协议的校验不一致,这里不对其进行讨论。 * 自由口通讯在 ’) 端利用 +"),-- 控件实现 ,!’-.. 控 件 是 ,1B0-5-P4 公 司 提 供 的 简 化 的 C1QE-R5 下串行通讯编程的 HB41S/7 控件,它为应用程 序 提 供 了 通 过 串 口收发数据的简便方法。 在 &’JI% 开 发 环 境 下 使 用 ,!’-.. 控 件 必 须 首 先 利 用 ,F’ 向 导 在 工 程 中 添 加 该 控 件 。*0-T/B4#UHEE 4- *0-T/B4#U ’-.L-Q/Q45 2QE ’-Q40-3III#U9/V154/0/E HB41S/ ’-Q40-35#U ,B01-5-P4 ’-...WQ1B241-Q5 ’-Q40-3N&JI%, 单 击 6D!A98, OX,所有步骤缺省。 ?I( 串口的初始化 串 口 的 初 始 化 一 般 在 窗 口 创 建 函 数 ’8/54&1/RYY*0/’0/Z 24/C1QE-R[\中实现实现,也可在自定义的函数中实现。 S-1E ’8/54&1/RYYOL/Q*-04[\ ] >CO9> 54^3/_C!‘&6!6G+AaC!‘’K6+>b 1P [c.‘’-.9/BI’0/24/ [D:++N54^3/N’9/B4 [%N%N%N%\N4d15N 6>’‘,!’O,,(\\
《工业控制计算机》!""# 年 $% 卷第 ! 期 p[ & 4751?<-@A ’()*+" ,-./0123 45 672/42 89+ *5::;<06/405<= *5<> B B 724;7< C$A B B D/01 45 672/42 E :F*5:(26GH24*5::I574,$@A B B 选择 *8J$ :F*5:(26GH24K /1I574 类 中 函 数 相 对 应 的 数 据 格 式 , 也 需 要 把 由 I9* 发 送 到 I* 端的数据转换成用户需要的数据格式。 本文介绍的通讯实现在除湿机状态监测软件中运行良好。 参考文献 $ 西门子公司G HnC!"" 可编程控制器系统手册,!"""G[ 第二版 ! 西门子 (中国)有限公司自动化与驱动集团G 深入浅出西门子 HnC !""I9*G 北京航天航空大学出版社,!""[G$! 第一版 [ 李 现 勇G]0=;/1 *gg串 口 通 信 技 术 与 工 程 实 践G 人 民 邮 电 出 版 社 , !""NGn 第二版 发 送 数 据 通 过 语 句 :F*5:(26GH248;4R;4 ,*812]/70/<4 N (2:5< HR2‘720l=2G) 65::;<06/405< 61/== D57 =270/1 R574G ,’2=4@@’2=4 可以是字符串或者为 LO42)77/O 型数组。 ! 自由口通讯在 "# 端利用 #$%&’()"*&+, 类实现 如果在程序中使用多个串口,而且还要做很复杂的处理工 !"""G! *532Q;7; 网站资料 [收稿日期:!""NG$"G!o]
分享到:
收藏