浙大中控DCS培训教程-站间通讯.ppt
《浙大中控DCS培训教程-站间通讯.ppt》由会员分享,可在线阅读,更多相关《浙大中控DCS培训教程-站间通讯.ppt(33页珍藏版)》请在装配图网上搜索。
控制方案的设计 高级组态维护培训班 一 编程小案例 两种方法的比较 组态中实现 精度高程序中实现 灵活 控制站间的数据交换 控制站间的数据交换 对于一个较大的系统 往往无法做到将程序需要调用的位号集中在一个控制站中 这里 就需要进行数据的站间调用 控制站间的数据交换 为了实现在控制站间交换数据 每个控制站开辟了一片共享数据区 用以存放共享数据 数据区内有128 4个字节描述为LONGg msg 128 在SCControl中数据类型为DWORD 为了最灵活经济的使用这片数据区 系统定义了一系列函数处理各种数据类型从数据区的放入和取出 通过sendmsg和getmsg执行发送和接收工作 控制站间的数据交换 假如现在系统中有4个控制站 其中2号站需要调用1号站的一些数据 那么 让我们一起来看看实现数据交换的步骤 控制站间的数据交换 首先 在1号站内编制一段程序 通过程序把需要被调用的数据存放在本站点的数据共享区中 然后把这些共享数据发送到系统的过程控制网上 这一次的数据发送是采用广播式的发送 也就是不特别指明发送到哪一个控制站中 以上为被调用数据的站点上进行的操作 控制站间的数据交换 接着 在接受数据的2号控制站中我们也要编制一段程序 将指定的1号控制站发送的数据接收到本站点中 接收过来的数据可以在本站点中任意使用 控制站间的数据交换 例子 地址为2的控制站中有以下的一些数据需要在地址为4的控制站中使用 这些数据分别是 地址2号控制站中氧化炉温度TI 101 空气流量FI 101 反应罐液位LI 101 电机1状态DI 101 电机2状态DI 102 电机3状态DI 103 电机4状态DI 104 如何实现 控制站间的数据交换 根据系统规定 模拟量位号在系统内以2字节的半浮点 sfloat 数据类型存放 开关量以布尔 bool 数据类型存放 对于g msg变量 每一个g msg分别可以利用它的高16位和低16位存放2个半浮点型或整型的2字节变量 若是布尔型的数据 g msg的每一位可以存放一个布尔量 也就是每个g msg变量可以存放32个布尔量 开关量 对于像浮点型 float 这样的本身就占用4个字节的变量 每个g msg只能存放一个 控制站间的数据交换 经分析 需要发送的数据有模拟量位号3个 开关量位号4个 在这里 根据题目要求 我们使用两个g msg变量 其中的一个g msg存放题目中要求的2个模拟量位号 正好占用了4个字节 另一个g msg存放题目中的另一个模拟量位号 2个字节 和4个开关量 4位 控制站间的数据交换 发送 那么 在地址为2的控制站中 编写一段程序 程序中 将 个模拟量和 个开关量分别存放在 个g msg变量中 为了方便起见 程序中使用了g msg 0 和g msg 1 然后将这两个g msg发送出去 控制站间的数据交换 Setsfloat函数是向长整数中放sfloat数据的函数 y setsfloat 长整型数据 半浮点数据 或 长整型数据为被写的数据源 半浮点的数据为所需存放的数据 表示在长整型数据的低位上存放数据 表示在长整型数据的高位上存放数据 函数运算的结果就是向长整数中放sfloat数据 控制站间的数据交换 Setbit函数是向长整数中放bool数据的函数 y setbit 长整型数据 bool数据 0 1 31 长整型数据为被写的数据源 bool数据为所需存放的数据 0 1 31表示在长整型数据的哪一位上存放数据 函数运算的结果就是向长整数中放bool数据 控制站间的数据交换 Sendmsg为设置向其他控制站发消息的数目的函数 sendmsg 所需发送msg的数量 控制站间的数据交换 g msg 0 0 g msg 1 0 g msg 0 setsfloat g msg 0 TAG TI 101 PV 0 g msg 0 setsfloat g msg 0 TAG FI 101 PV 1 g msg 1 setsfloat g msg 1 TAG LI 101 PV 1 g msg 1 setbit g msg 1 TAG DI 101 PV 0 g msg 1 setbit g msg 1 TAG DI 102 PV 1 g msg 1 setbit g msg 1 TAG DI 103 PV 2 g msg 1 setbit g msg 1 TAG DI 104 PV 3 sendmsg 2 控制站间的数据交换 SETSFLOST模块的功能是在输入的32位DWORD型变量的指定位置设置16位的SFLOAT值 再赋给输出值 其中 SFLOAT型在计算机中以定点法存储 在指定位置设置后 整体以DWORD型传送 控制站间的数据交换 输入引脚X上连接了一个DWORD变量 输入引脚SF上连接的就示需要在其他站点上被调用的数据位号 输入引脚SERIAL上连接的数字表示该半浮点位号在双字的g msg变量中存放的位置序号 0表示放在低16位 1表示放在高16位 将所需的数据存储在DWORD变量指定位置后 将数值改变后的DWORD变量从输出引脚Y输出 SETBIT模块的功能与前面的模块类似 是在输入的DWORD型值的指定位置设置开关数据 再赋给输出值 也就是 在已存在的DWORD型值的某一位上设置开关数据 其余不变 然后输出 控制站间的数据交换 输入引脚X上连接了一个DWORD变量 输入引脚Q上连接的就示需要在其他站点上被调用的数据位号 输入引脚SERIAL上连接的数字表示该布尔型位号在双字的g msg变量中存放的位置序号 0表示放在最低位 31表示放在最高位 将所需的数据存储在DWORD变量指定位置后 将数值改变后的DWORD变量从输出引脚Y输出 SENDMSG模块的功能是通知发送消息的个数 SIZE定义消息的个数 消息内容放在g msg 中 控制站间的数据交换 控制站间的数据交换 接收 接着我们需要在接受数据的站点 地址4号控制站编写接受数据的程序 本站点需要接受的数据就是地址2号控制站发送出来的两个g msg变量 g msg 0 和g msg 1 控制站间的数据交换 Getmsg为从其他控制站取消息的函数 y getmsg 控制站地址 所接收的msg号 控制站间的数据交换 Getsfloat为从长整数中取半浮点数的函数 y getsfloat 长整型数据 或 长整型数据为取数据的数据源 一般的 就是我们从其它控制站中取来的数据 表示从长整型数据的低位上取数据 表示从长整型数据的高位上取数据 控制站间的数据交换 Getbit函数是从长整数中取BOOL数据的函数 y getbit 长整型数据 0 1 31 长整型数据为取数据的数据源 一般的 就是我们从其它控制站中取来的数据 0 1 31表示从长整型数据的哪一位上取数据 控制站间的数据交换 longmsg0 msg1 sfloatTI101 FI101 LI101 boolDI101 DI102 DI103 DI104 msg0 getmsg 2 0 msg1 getmsg 2 1 TI101 getsfloat msg0 0 FI101 getsfloat msg0 1 LI101 getsfloat msg1 1 DI101 getbit msg1 0 DI102 getbit msg1 1 DI103 getbit msg1 2 DI104 getbit msg1 3 控制站间的数据交换 GETMSG模块的功能是从其他控制站取传送过来的消息 STATION引脚为控制站号 填写控制站的地址 SERIAL引脚为消息序号 填写所接受的msg序号 MSG引脚输出的是接受到的消息 控制站间的数据交换 GETSFLOST模块的功能是从输入的32位DWORD型值的指定位置取16位的SFLOAT型值 其中 在计算机中 SFLOAT型用定点表示法表示 SERIAL 0 取低16位 SERIAL 1 取高16位 控制站间的数据交换 输入引脚X上连接了一个DWORD变量 即为取数据的数据源 输入引脚SERIAL上连接的数字表示从双字的变量中取半浮点数的位置序号 0表示从低16位取数 1表示从高16位取数 取出的半浮点数从输出引脚Y输出 GETBIT模块的功能与前面的模块类似 是从输入的DWORD型值的指定位置取BOOL数 控制站间的数据交换 输入引脚X上连接了一个DWORD变量 即为取数据的数据源 输入引脚SERIAL上连接的数字表示从双字的变量中取布尔数的位置序号 0表示从最低位取数 31表示从最高位取数 取出的布尔数从输出引脚Q输出 控制站间的数据交换 控制站间的数据交换 数据从网络上接收到本控制站后 通过上面的方法将数据取出来放在指定的变量中以后 在本控制站就可以任意的调用这些数据的实时值了 这就是控制站之间数据调用的全过程 控制站间的数据交换- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙大 DCS 培训 教程 通讯
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文