PLC
直播中

挽你何用

9年用户 842经验值
擅长:电源/新能源 MEMS/传感技术
私信 关注

西门子S7-1200的IP地址分配和主程序编写

S7-1200的IP地址如何进行分配?
S7-1200程序该如何去编写?

回帖(1)

陈珂瑾

2021-9-22 17:00:50
  一、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次请求。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分