PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 2846|回复: 9

[西门子] 用S1116大量扩展三菱FX2N模拟量通道

[复制链接]
发表于 2006-9-12 18:17:00 | 显示全部楼层 |阅读模式
<P>前言:<br>    三菱FX2N系列PLC是工控同仁们常用型号之一,北京西姆宏仪器仪表有限公司是专业生产I/O产品的厂商,所生产的模拟量型前端产品S1116(16通道,标准电压、电流、热电阻、热电偶混接万能输入,工程量值)可以很方便的通过RS485通讯的方式,对FX2N系列进行模拟量输入通道的扩展(从16通道到256通道,1~16个站),既方便、简单、实用,又降低了扩展成本,而且还解决了使用PLC模拟量模块不易解决的现场隔离问题和扩展模拟量通道数量上的局限,以及采集模拟信号底层编程的麻烦,特别适合于需要较多模拟量信号秒级采集应用的场合。此连接亦适用于FX2N挂接S1216(两线制变送器信号专用型,16通道,内供电)型模拟量输入前端。以下就对此给予详细说明:<br>一、S1116与FX2N通讯说明 <br>  1.通讯线的连接<br>         由于S1116采用RS485方式,通讯协议为自定义(S-PLC协议),因此FX2N使FX2N-485-BD通讯板以“非协议数据传输”(RS指令)的形式与之通讯相连。RS485通讯连线采用单根屏蔽双绞线;FX2N-485-BD端SDA和RDA短接,SDB和RDB短接。接线方法如下: <br>      FX2N-485-BD           S1116(1号站)端子          S1116(N号站)端子<br>      SDA短接RDA    ————   37(RS485A)    ————   37(RS485A)<br>      SDB短接RDB    ————   36(RS485B)    ————   36(RS485B)<br>       SG           ————   35(RS485地)   ————   35(RS485地)<br>  2.通讯形式:(通讯方式为主从方式,FX2N为主,S1116为从)<br>         波特率=19200 bps<br>         数据长度=8位<br>奇偶性=无 <br>         停止位=1位<br>         头标志字符=无<br>         尾标志字符=无<br>         最后D8120=H0C91<br>  3.S1116前端设置<br>    ●用户在使用之前应将S1116的站址设置好,并将通讯速率设置为19200bps,通信协议为S_PLC(S1116的其它参<br>数,用户根据现场实际工况自行设置)。<br>    ●如果有多个(N个)S1116,站址应从01开始,依次至N为止,连续不得跳跃。<br>    ●通讯协议(参见后面说明)的具体细节用户可忽略。S1116与FX2N的接口程序名为S_FX2N。<br>    ●FX2N将对各S1116进行循环读取,1秒之内约可读取8个S1116站的模拟量数据。<br>二、FX2N相关软件说明(S1116与FX2N的接口程序名为S_FX2N 。)<br>    串行通信采用8位格式,即1个字节数据存放在一个数据寄存器中,因M8161=1;而S1116采集的数据为一个字(两个字节),因此FX2N接收到的数据要合成到一个数据寄存器中,方便用户读取和处理。<br>    软件使用M1作为FX2N发送数据的触发脉冲,第一次由程序开始触发,以后的触发由一次收发工作都正常结束(M8123置起)或异常结束(M8129或M8063置起)来完成。<br>    FX2N发送的命令码组织由子程序P1完成,其中包括了校验码的计算和放置。在该子程序最后将站址加1,下一次将组织下一站的命令码,无论这次的收发是否正常完成。<br>    FX2N收到的通讯数据存放在D214开始的45个数据寄存器中(S1116返回37个数据,加上FX2N自己发送的8个命令数据,共45个数据)。返回数据(指S1116发送的37个数据)的校验由P2子程序完成,若校验不对,则程序不再进行下一步填数的工作。每收到一个站的数据都要合成(收到的每通道数据放在两个数据寄存器中,P3子程序完成)移放到对应的空间存放(D260开始的数据寄存器中,每16个数据寄存器对应一个S1116的16通道数据)。<br>    对于用户而言,只需在程序中简单定义D209寄存器连接S1116的个数,再运行本程序,即可收取所挂接的各个S116的模拟量采集值(数据格式INT,工程量值)。<br>    当通讯异常结束或超时,将置起该站对应的通讯异常标志位(D259),以方便用户读取判断那个站通讯出现问题,并且该站对应内容将被写入10004,用户也可以从数据层面上判断通讯是否正常。<br>三、占用资源<br>  1.    M1<br>  2.    V,Z<br>  3.    D200~D260+(站数×16),如果没有那么多站,则其对应空间将释放。<br>  4.    不占用中断<br>四、寄存器分配使用说明<br>  1.    D208:        站号<br>  2.    D209:        站数(注意:需要由用户输入实际挂接的站数)<br>  3.    D210~D213:    中间计算用<br>  4.    D214~D258:    通讯接收到的数据<br>  5.    D259:        通讯异常标志(每站一位,16个站对应16位,正常为0,异 <br>                            常为1,最低位为1号站)<br>  6.    D260~D275:    第一站16通道数据<br>五、程序清单<br>   LD       M8002                      //    第一次扫描<br>   MOV   K1        D208    //    第一个站号写入D208<br>   MOV   K16     D209         //    站数写入D209(本行程序中挂接站数由用户根据 <br>                                     需要自行定义!可选范围K1~K16,即1~16个站)<br>   MOV   K0      D259         //  清除各站通讯异常标志位<br>   MOV      H0C91    D8120          // 初始化通信格式(BPS=19200,8位数据位,1位停<br>                                 //                 止位)<br>   SET        M8161          //   8位数处理<br>   SET     M1              //  触发通讯脉冲<br>   MOV     K20    D8129          //   设置通讯超时时钟为200毫秒<br><br>   LD        M8000<br>   RS         D200    K8  D214  K45 // 串行数据传送命令。从D200开始发<br>                                     // 送8个字节,从D214接受45个字节。<br>   LDP        M1<br>   CALL    P1                         // 根据站号写入发送内容<br>   SET     M8122                      // 发送请求,开始发送(发送结束时自动复位)<br>   LDF        M8122<br>   RST     M1                        // 清除触发脉冲<br><br>   LD        M8123            // 通信结束,并且无超时标志。<br>   LDI        M8129<br>   ANB<br>   CALL    P2                 // 将接受到的数据写入指定位置<br>   SET        M1                //  触发下一次通讯<br>   RST        M8123             //  清除通讯结束标志位<br><br>   LD         M8123             // 通讯超时,且结束<br>   LD        M8129<br>   ANB<br>   CALL    P5                 // 往对应站号的空间写入10004,以指示数据异常<br>   RST        M8123     //  清除通讯结束标志位<br>   RST     M8129              //  清除超时标志位<br>   SET        M1          //  触发下一次通讯<br>    <br>   LD         M8063       //  通讯错误<br>   CALL   P5           // 往对应站号的空间写入10004,以指示数据异常<br>   SET        M1          // 触发下一次通讯<br>   RST        M8063      //  清除通讯错误标志<br>   FEND                       // 主程序结束<br><br>   P1                         // 写入发送内容 <br>   LD        M8000<br>   MOV     D208     D200<br>   MOV    H0004    D201<br>   MOV    H0000    D202<br>   MOV    H0000    D203<br>   MOV    H0000    D204<br>   MOV    H0010    D205<br>   CCD    D200    D206    K6  // 计算校验码<br>   MOV     D207    D206<br>   MOV    H00FF    D207<br>   INC        D208       // 下一个站号<br>   LD&gt;        D208    D209<br>   MOV    K1        D208<br>   SRET<br><br>   P2                  // 计算接受到的数据的校验码,若正确则将数据写入指定位置<br>   LD         M8123<br>   CCD    D222    D210    K35<br>   LD=        H00FF    D258<br>   LD=     D211    D257<br>   ANB<br>   CALL    P3<br>   SRET<br><br>   P3                  // 将接受到的数据写入该站对应位置<br>   LD        M8123<br>   MOV    D208    D210<br>   DEC     D210<br>   MUL    D210    K16     D212<br>   MOV    D212    Z<br>   MOV    K0        V<br>   P4 <br>   LD&lt;        Z    K32<br>   MOV     D225V    D210<br>   ROL    D210    K8<br>   ADD    D210    D226V    D260Z<br>   INC        Z<br>   ADD    V    K2    V<br>   CJ        P4<br>   LD        M8123<br>   MOV    D208    D210<br>   MOV    K1        D211<br>   P7<br>   LD&gt;        D210     K1<br>   ROL     D211    K1<br>   DEC    D210<br>   CJ        P7<br>   LD        M8000<br>   WXOR    HFFFF    D211    D211         <br>   WAND    D211     D259    D259         // 清除该站对应的通讯异常标志位<br>   SRET<br><br>   P5              // 往该站对应位置写入10004,并置起该站对应通讯异常标志位<br>   LD        M8000<br>   MOV    D208    D210<br>   DEC     D210<br>   MUL    D210    D16     D212<br>   MOV    D212     Z<br>   MOV     K0        V<br>   P6<br>   LD&lt;        V    K16<br>   MOV    K10004    D260Z<br>   INC        Z<br>   INC     V<br>   CJ         P6<br>   LD        M8000<br>   MOV    D208    D210<br>   MOV    K1        D211<br>   P8<br>   LD&gt;        D210    K1<br>   ROL    D211    K1<br>   DEC    D210<br>   CJ         P8  <br>   LD        M8000<br>   WOR    D211    D259    D259<br>   SRET<br>   END<br><br>六、通信协议(S-PLC协议,S1116部分)<br>   1.命令码(8字节)<br>      站址,4,0,0,0,16,校验码,H0FF。<br>      校验码为前6字节的异或值。<br>   2.返回码(37字节)<br>      站址,4,32,数据(16×2字节),校验码,H0FF。<br>      校验码为前35字节的异或值。<br>[replyview] 注:本连接方法亦适用于S3000系列可配置I/O单元的S3116及S3216 I/O卡件。<br><br>   各位同仁如有问题请留下地址邮编电话,北京西姆宏仪器仪表有限公司有工程师为您提供服务。<br>    恭候您的垂询,<br>    网 址:<a href="http://www.xmson.com.cn/" target="_blank" >http://www.xmson.com.cn</A><br>  邮 箱:<a href="mailto:xmson@xmson.com.cn" target="_blank" >xmson@xmson.com.cn</A><br>  联系电话:010-62250442或010-62241752<br>  联 系 人:李跃文工程师</P>
<P>[upload=jpg]UploadFile/2006-9/20069121819663162.jpg[/upload]<br></P>
<P>[/replyview]<br></P><br>
[此贴子已经被作者于2006-9-12 18:19:57编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

发表于 2007-12-14 00:49:00 | 显示全部楼层
<p>值得收藏</p>
回复 支持 反对

使用道具 举报

发表于 2007-12-22 13:17:00 | 显示全部楼层
很精典,
回复 支持 反对

使用道具 举报

发表于 2007-12-27 16:21:00 | 显示全部楼层
<p>先看看再说</p><p></p>
回复 支持 反对

使用道具 举报

发表于 2007-12-28 11:09:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-3-2 23:52:00 | 显示全部楼层
不错的东西
回复 支持 反对

使用道具 举报

发表于 2008-3-29 12:14:00 | 显示全部楼层
[em03]
回复 支持 反对

使用道具 举报

发表于 2009-7-15 01:18:00 | 显示全部楼层
<p>很精典,
<script type=\"text/javascript\">var reload=1;</script>
值得收藏</p>
<script type=\"text/javascript\">var reload=1;</script>
回复 支持 反对

使用道具 举报

发表于 2009-8-6 19:12:00 | 显示全部楼层
不错的东西
回复 支持 反对

使用道具 举报

发表于 2009-10-18 23:46:00 | 显示全部楼层
<p>先看看再说</p>
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-4-27 22:28 , Processed in 0.047187 second(s), 24 queries .

快速回复 返回顶部 返回列表