在在工业场景中,经常会使用到PLC进行各种设备的数据采集和控制。本教程介绍使用海创-IIoT 可视化平台配置s7-200 smart跑马灯场景效果。
一、使用产品
海创Box智能采集网关
西门子PLC (ST20 S7-200)
带自锁急停开关
LED声光报警器
LED电源指示灯
二、产品连接方式
连接海创Box智能采集网关
连接接跑灯器材
三、产品配置
西门子PLC (ST20 S7-200) 基础配置 请参考《西门子PLC》
西门子PLC (ST20 S7-200) 跑马灯控制设计
总开开启时,接受平台信号
总开开启,响一声;总开关闭复位,信号响两声
四、项目部署调试
在桌面中打开海创-IIoT可视化编辑工具,进入可视化编辑器。本次教程需要用到如下节点,在左侧节点栏中拖拽出使用
定时器 周期性触发输入时间戳或者相应的字符
S7ctrl 用于写入S7西门子通信协议的设备数据
function JavaScript函数块,用于编写灯控逻辑代码
配置相应节点后配置界面如下:
节点配置:
定时器 设置成周期性触发,主要当触发流程使用,具体配置如下图
S7ctrl 设置如下配置,配置PCL连接地址并定义PLC变量表
function 在右侧调试窗口打开代码编码窗口,向PLC的M区写入对应的bool值从而控制对应PLC输出点的LED灯
部署调试:
按照以上教程配置好流程后,点击部署,部署成功后程序开始运行,在实验板上观看到跑马灯效果,本案例效果可根据实际应用,比如与具电表或湿湿度仪配置,读取其状态数据,修改function代码设定亮灯场景等。
五、示例
以上教程可以通过拷贝下面代码实现快速复用,在新建的流程中点击界面右侧 菜单栏-导入-剪贴板,在文本框中粘贴下面代码后点击确定,即可快速复用
[
{
"id": "934346d0.9ab7c8",
"type": "iot-s7ctrl",
"z": "cbf428b2.2a3ac8",
"name": "",
"server": "b8104a0c.03ed08",
"columns": [
{
"Key": "M0.0",
"Label": "M0.0",
"Address": "M0.0",
"Ctrlvalue": "0",
"ValueType": "bool"
},
{
"Key": "M0.1",
"Label": "M0.1",
"Address": "M0.1",
"Ctrlvalue": "yes",
"ValueType": "bool"
},
{
"Key": "M0.2",
"Label": "M0.2",
"Address": "M0.2",
"Ctrlvalue": "0",
"ValueType": "bool"
},
{
"Key": "M0.3",
"Label": "M0.3",
"Address": "M0.3",
"Ctrlvalue": "0",
"ValueType": "bool"
},
{
"Key": "M0.4",
"Label": "M0.4",
"Address": "M0.4",
"Ctrlvalue": "0",
"ValueType": "bool"
},
{
"Key": "M0.5",
"Label": "M0.5",
"Address": "M0.5",
"Ctrlvalue": "0",
"ValueType": "bool"
},
{
"Key": "MR2",
"Label": "MR2",
"Address": "MR2",
"Ctrlvalue": "11.22",
"ValueType": "numerical "
},
{
"Key": "MD1",
"Label": "MD1",
"Address": "MD1",
"Ctrlvalue": "444",
"ValueType": "numerical "
}
],
"x": 655,
"y": 340,
"wires": [
[]
]
},
{
"id": "b8104a0c.03ed08",
"type": "iot-s7ctrl-client",
"z": "",
"name": "",
"communicate": "TCP",
"host": "192.168.7.163",
"post": "102",
"baudrate": "9600",
"databits": "8",
"stopbits": "1",
"parity": "None",
"expand": {},
"connmode": "tsap",
"rack": "0",
"slot": "2",
"localtsaphi": "10",
"localtsaplo": "00",
"remotetsaphi": "03",
"remotetsaplo": "00",
"verbose": "default"
}
]