完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、S7-1200的IP地址分配和主程序编写
IP地址的分配 打开博途,创建新项目,打开项目视图,双击在项目树中的添加新设备,选择PLC的型号,点击确定,如下图。 然后在本地模块中找到创建的PLC,右键选择属性,按下图修改IP地址和勾选连接机制。 接着按下图所示,在在线访问中找到PlC设备,点击在线和诊断,修改PLC的IP地址和本地模块一致。 主程序的编写 双击程序块中的Main,写入程序,实质上我们只需要控制Q点的通断,但因为Q点可读不可写的原因,我们需要用6个M点来控制6个Q点的状态,如下图。 最后下载到PLC中。 二、数码管的说明 数码管默认扫描锁存方式,能够节省PLC端口,2位扫描锁存,1248+x1、x2,+DP(小数点,没使用所有不接),可短接GT改为7位二进制静态输入功能,即1 2 4 8 16 32 64,静态端口使用较多,因此这里选择动态显示。 数码管从左到右一次接PLC的Q0.0-Q0.5,即Q0.0控制点1,Q0.1控制点2,以此类推。 这里我们用的是动态显示,数码管要显示两位数字,则要先显示其中一位,再显示另一位,然后两位数字在很快的频率中不停亮灭,肉眼看起来就和静态一样,显示通断表如下。 比如要显示12,总共要发送4次请求,首先十位显示1(需要4个点,M03-M00为0001)然后第5位即M04需要先置1再置0,便能将1记录下来并显示;个位同理,显示2(M03-M00为0010)然后第6位即M05需要先置1再置0,将2记录下来并显示。 对M05-M00发送 010001 -→ 000001 -→ 100010 -→ 000010 就能显示数字12了。 三、海创微联的部署 总体结构如下图所示,复用程序附在本节结尾,导入即可快速复用。 控件介绍 S7 ctrl S7 ctrl控件用于将数据写入西门子PLC,具体配置如下。 标识符和功能名称不使用小数点,地址为M0.0-M0.5,值类型为布尔型,参数为写入的数据(如M0.0参数写0为断开,1为闭合),不填默认为0或根据上个节点发送的msg.payload决定。 通讯方式为TCP,地址填入PLC的IP地址,端口默认102,TSAP模式,本地TSAP默认10.00,远程TSAP默认03.00。 延迟 延迟控件用于对收到的消息做延迟处理,可以等待几秒几分钟或几小时再发送出去。 触发 触发控件能够在收到输入后输出一次请求,然后等待一段时间后再输出一次请求。 函数控件,使用js语言,用于定义、赋值、指定规则等等,是最多变的控件。 部署详解 将整个部署界面分为3个区域,如下。 区域1显示数字的十位。 函数1将接收到的2位数字的字符串取第零位(也就是十位,用字符串是因为如果输入的是06,用数字则会将0省略只输出6),然后再转化为数字输出,如下图。 函数2将函数1发来的那1位数字转换为2进制,然后赋值给M00-M03输出,如下图。 +32是为了让第0位为1,然后取2-5位,这样输入的不管是9还是1,输出都能显示4位2进制数;如果不这样的话,输入1,第0位取到1,会向后补0,输出会是1000而不是0001。 函数3则是利用触发控件,对M04置1后再置0,因为有先后顺序所以加入了延迟控件。 总结来说,显示一个数字会发送3次请求。当输入一个数字的字符串后,取2位数字的第零位也就是十位,转换为2进制赋值给M00-M03,然后发送给S7控件输入到PLC,延迟0.2s后发送M04置1,再0.2s后M04置0,就能显示十位了。 区域2显示数字的个位,和区域1同理,函数4取2位数字的第一位也就是个位,(延迟0.6s是需要等十位显示结束,不然会错乱),然后函数5转换为2进制赋值给M00-M03输出,函数6对M05置1后置0。 最后发送到区域3,利用S7控件控制PLC M00-M05点的通断,具体效果如下。 手动输入字符串52,部署,点击定时器,显示2位数字,共发送6次请求。 |
|
|
|
只有小组成员才能发言,加入小组>>
900浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 04:55 , Processed in 0.590222 second(s), Total 71, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号