1. Env
LECPServer是免安装的,直接放到文件夹内即可运行,运行需要下面的支持环境
- Microsoft .NET Framework 4.6.1或以上
- Visual C++ Redistributable Packages for Visual Studio 2013
LECPServer: www.lecpserver.com/downloads/L…
Microsoft .NET Framework 4.6.1 : dotnet.microsoft.com/download/do…
Visual C++ Redistributable Packages for Visual Studio 2013 www.microsoft.com/zh-cn/downl…
LECPServer的官网站点 www.lecpserver.com
LECPServer的使用手册 www.lecpserver.com:3001
LECPServer的Github地址 github.com/xeden3/LECP…
2. Js Code
// 获取当前时间 yyyy-mm-dd hh:mm:ss 格式
function get_datatime_by_yyyymmddhhmmss() {
let d = new Date();
return d.getFullYear() + "-" + d.getMonth() + "-" + d.getDate() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
}
// 将获得的值转成echart的data格式
function node_val_to_data(v) {
let now = new Date();
return {
name: now.toString(),
value: [
get_datatime_by_yyyymmddhhmmss() ,
Math.round(v)
]
};
}
option = {
title: {
text: '动态数据 + 时间坐标轴'
},
tooltip: {
trigger: 'axis',
formatter: function (params) {
params = params[0];
var date = new Date(params.name);
return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear() + ' : ' + params.value[1];
},
axisPointer: {
animation: false
}
},
xAxis: {
type: 'time',
splitLine: {
show: true
}
},
yAxis: {
type: 'value',
boundaryGap: [0, '100%'],
splitLine: {
show: true
}
},
series: [{
name: '模拟数据',
type: 'line',
showSymbol: false,
hoverAnimation: false,
data: data
}]
};
// 数据 array
var data = [];
setInterval(function () {
// LECPServer的WebAPI服务地址 端口默认为8088
let url = "http://127.0.0.1:8088";
$.ajax({
url: url,
// 读取PLC节点数据
data: JSON.stringify({
"action":"plc_read_node",
"node":"NODES.CP1H.D0000"
}),
contentType: "application/x-www-form-urlencoded",
type: 'POST',
timeout: 2000,
success: function (response) {
// 解析节点数据
// 数据长度是1,因此拿v[0]的数据即可
v = JSON.parse(response);
data.push(node_val_to_data(v['rtval'][0]));
},
error: function (x, t, m) {
console.log(x);
}
});
// 刷新EChart
myChart.setOption({
series: [{
data: data
}]
});
}, 500);