威纶通宏指令

威纶通触摸屏通过宏指令将数据转发数据给第三方设备(PLC) 阅读详情
AI摘要

本文详细解析了一段用于嵌入式系统通信的指令代码,包括宏定义的命令发送过程和数据读取、设置操作。涉及到的功能码解释、地址设置、CRC校验计算及串行通信的具体实现。

//TK6071IQ
//自由协议
macro_command main()
	char command[32]
	short address, checksum
	FILL(command[0], 0, 32) // 初始化命令
	Command[0] = 0x1 // 站号
	Command[1] = 0x5 // 功能码 : 写单个位
	address = 0
	HIBYTE(address, command[2])
	LOBYTE(address, command[3])
	Command[4] = 0xff // 使该bit设置为ON
	Command[5] = 0
	CRC(command[0], checksum, 6)
	
	LOBYTE(checksum, command[6])
	HIBYTE(checksum, command[7])
	// 将命令通过串行发送出去
	OUTPORT(command[0], "Free Protocol", 8)	
	

end macro_command

 


macro_command main()
	short data[4]
	short page
	unsigned char buf[10]
	bool a
	int data32
	
	
		
	
	GetData(a,"Local HMI", LB, 0, 1)//读LB 0 地址到a
	SetData(a,"Local HMI", LB, 5, 1)
	a=false
	SetData(a,"Local HMI", LB, 0, 1)//清原来数据
	//判断密码	
	//GetData(data32,"Local HMI", LW, 0, 2)
	
	GetData(buf[0],"Local HMI", LW, 0, 4)
	SetData(buf[0],"Local HMI", LW, 2, 4)//测试正确
	
	SetData(buf[0],"Local HMI", LW, 20, 1)//0xd2  原输入数据:1234567890 0x499602d2  下面是高地址存高位
	SetData(buf[1],"Local HMI", LW, 22, 1)//0x02
	SetData(buf[2],"Local HMI", LW, 24, 1)//0x96
	SetData(buf[3],"Local HMI", LW, 26, 1)//0x49
	
	//GetData(data[0],"Local HMI", LW, 0, 2)
	//SetData(data[0],"Local HMI", LW, 6, 2)//测试也正确
	
	//data32=data[0]<<16|data[1]	
	//SetData(data32,"Local HMI", LW, 16, 1)//此处转换出现错误,原值为0x499602d2 而此处显示为0x02d24996
	
	
	//data32=buf[0]<<24|buf[1]<<16|buf[2]<<8|buf[3]
	
	//page=11
	//SetData(page,"Local HMI", LW, 10, 1)//切换到11页,因为plc控制器里增加	
	//FILL(data[0],0,2)
	//SetData(data[0],"Local HMI", LW, 0, 2)//清原输入密码	

end macro_command

 

威纶通定时循环操作宏_威纶通触摸屏宏指令的使用 工控多年的公众号运营者我经常分享原创技术内容内容涉及到工业多个方面分享新知识带你一起进步今天看到一个例程,想再写一下威纶通触摸屏宏指令的使用。之前有分享过一篇有关威纶通关于宏指令使用的文章,那篇文章的宏只用过"GetData"指令,详情看这篇文章->威纶通触摸屏宏指令的使用此篇文章使用“GetData”、“SetData”、“Delay”、“for..”、“if..”几个常用的... 阅读详情

相关推荐

威纶通屏幕(HMI)开发进阶教程四:通过PLC控制,使宏指令跳转到不同的窗口

平时用威纶通屏幕的时候,大家是否想过,如何通过一个操作,根据参数的不同跳转到不同的窗口。有时候我们根据业务或者功能需要这么做。 这种功能的实现可以有好几种的方式来实现它,下面介绍根据PLC控制,通过宏指令来跳转不同的窗口。 首先,我们创建一个工程,除了本身一个主窗口10,在新建三个窗口,如以下图所示: 接下来,我们在菜单栏中,点击“元件”->"PLC"控制->“新增”。...

nick_chain的博客 4万+

威纶通触摸屏-宏指令版配方功能手册

威纶通触摸屏-宏指令版配方功能 威纶通触摸屏配方宏指令程序,MT8071iE触摸屏 具有新增配方功能 具有修改配方功能 具有删除配方功能 具有查找配方功能 利用宏指令程序来控制,可宏指令注释清晰。

qRAbSnuHk的博客 4198

威纶通触摸屏宏指令GetData和SetData函数的使用方法示例

接下来,定义了一个GetTouchScreenData函数,该函数内部调用了GetData函数来获取触摸屏数据,并将数据存储在TouchScreenData结构体中返回。触摸屏在嵌入式系统中具有广泛的应用,威纶通(WeinTech)是一家知名的触摸屏厂商,提供了丰富的宏指令接口用于与触摸屏进行交互。触摸屏在嵌入式系统中具有广泛的应用,威纶通(WeinTech)是一家知名的触摸屏厂商,提供了丰富的宏指令接口用于与触摸屏进行交互。SetData函数用于设置触摸屏的数据,例如设置触摸屏的坐标值。

WangWEel的博客 3799

威纶触摸屏宏指令编程,字符串相关函数介绍与使用...

威纶通宏指令使用

q18770158319的博客 1万+

威纶通触摸屏通过宏指令制作密码登录画面的具体方法

威纶通触摸屏通过宏指令制作密码登录画面的具体方法

Robot_PLC_HMI_Automation 7999

威纶通HMI登陆方式(三):宏指令登陆

威纶通HMI系统提供了多种灵活且安全的登录方式,旨在满足不同工业应用场景下的安全需求与管理便捷性。除了传统的账户密码和索引密码登录方式外,其创新的宏指令登录功能更是为高级用户和开发者提供了强大的自定义能力。宏指令集成复杂逻辑与数据验证,依据系统状态或外部信号灵活切换用户权限,甚至生成一次性密码,显著增强安全防护。这一功能让登录流程高度个性化,适应多变工业环境,确保操作安全与便捷性的完美平衡。

XiuLian 7708

显控触摸屏宏指令编写_威纶通软件功能22 一篇文章让你学会简单的威纶通宏指令操作...

前言宏指令的作用宏指令提供了应用程序之外所需的附加功能。在HMI人机界面运行时,宏指令可以自动的执行这些命令。它可以担负执行譬如数据运算,传送等宏指令脚本语言是威纶通自己的语言,类似于C语言如何实现一个简单的宏指令?第一步:确定变量类型第二步:编写脚本语句第三步:宏指令触发条件举例:触摸屏上连接了PLC A和PLC B,想将PLC A的某个位信号传送给PLC B的某个位地址?我们详细来阐述步骤一 ...

weixin_28716181的博客 2万+

威纶通触摸屏宏指令应用介绍手册

威纶通触摸屏宏指令应用介绍使用方法手册

威纶通宏指令-SetData

威纶通宏指令。

HUJIANGMING的博客 5225

威纶通宏指令使用说明(简体)

介绍了关于威纶通宏指令使用说明(简体)的详细说明,提供威纶的技术资料的下载。

complier lab2

只需支持定义 main 函数即可不带参数 int main(){...}带参数 int main(int argc, int argv){...}

qq_43581843的博客 907

威纶通触摸屏可以解密吗_威纶通触摸屏最基本的宏指令使用

简单的威纶通宏指令应用入门,主要是为了让大家对威纶通宏指令的一个基本了解,这里主要用两个内部函数来实现一个启保停的PLC程序控制,程序用S7-200做了一个简单的描述,如下图。简单的启保停控制程序是这样,那如何用触摸屏的宏来实现呢,当然,我们这里是为了写宏而写,这个在触摸屏上是很容易实现的控制,大家可能都会,这里就不讨论了。首先我们建立一个威纶通的画面,在新建画面的时候,会弹出系统参数,然后在设备...

weixin_39779530的博客 6271

Kriging代理模型理论相关推导

代理模型,Kriging,加点准则

森屹的博客 1万+

威纶通宏指令初始化缺陷

第一次触发宏指令,btnStart == true。第二次触发,btnStart == false。lb10 — lb15 为 true。LB11 — LB15 为true。初始化数组第一个值,通过编译。

name_jiaosa的博客 997

实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码)

本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。

chair的专栏 1114

CAN 比特率和采样点计算

架构根据输入频率和比特率自动计算。

ldinvicible的专栏 787

威纶通触摸屏宏指令版:多功能配方控制与操作系统

总的来说,威纶通触摸屏的宏指令版配方功能为我们的工作带来了极大的便利。其新增、修改、删除和查找配方的功能,以及清晰的数据列表管理和宏指令注释,都使得这一功能成为了自动化控制领域的强大工具。其中的宏指令版配方功能,更是为那些需要频繁调整或管理多种配方的场景提供了极大的便利。为了方便用户更好地理解和使用宏指令版配方功能,我们附上了详细的宏指令配方分配表。以MT8071iE触摸屏为例,其内置的宏指令版配方功能,允许用户通过编写宏指令程序来控制配方的增删改查。利用宏指令程序来控制,可宏指令注释清晰,方便理解程序。

jmhlPWucuaT的博客 3433

STM32外部中断EXTI原理与飞控实时应用实战

外部中断(EXTI)是嵌入式系统中实现事件驱动和实时响应的核心机制,其本质是将外部电平变化转化为可调度的CPU中断事件。基于ARM Cortex-M NVIC架构,EXTI通过GPIO-EXTI-NVIC三级硬件通路实现低延迟信号捕获,具备边沿触发、优先级管理与挂起控制等关键能力。在四轴飞控、工业传感器、人机交互等对毫秒级响应有强需求的场景中,EXTI显著优于轮询方式,兼顾实时性与CPU资源效率。实际开发需严格遵循SYSCFG映射→EXTI配置→NVIC使能的时序逻辑,并规避常见陷阱如中断号误配、伪触发、低

weixin_36382073的博客 65

威纶通触摸屏MT6071IP如何使用宏指令编程设置密码登陆界面进行用户操作权限管理

在工控领域中,我们将我们制作的软件工程交付生产人员使用时,为了防止各类不相干的人员进行随手操作或产线工人误操作导致停机,造成不必要的损失,就需要对项目操作界面进行用户权限加密。一般像我使用的威纶通触摸屏比较多,所以有现成的方案可供大家借用,也节省了大家的时间。话不多说,我以型号为MT6071ip的屏做为示例,制作按钮操作权限登陆界面。 1、新建一个主页面,比如在该页面上我的设置1...

dominic55的专栏 3万+

全功能tgbot/Telegram机器人多功能有后台版源码

trx兑换 闪兑 关键字监控 群管 usdt监控 余额查询 推广分享 等几乎常见的tg机器人功能都有。全功能tgbot/telegram机器人多功能有后台版源码-打包好的可以直接上手。

百创科技 2702

PCIe 全解析笔记:从协议本质到工程实现

学习 PCIe,最容易陷入的误区是直接跳进协议手册(Base Spec 1300 多页),然后在 TLP 字段、LTSSM 状态、Ordering Rules 中迷失方向。正确的思维路径历史维度:从 PCI 到 PCIe,解决了什么核心矛盾?抽象维度:协议栈分层的真正意图是什么?工程维度:高速串行链路面临哪些物理挑战?协议如何应对?系统维度:作为 CPU 与外设的"动脉",PCIe 如何融入整个计算机体系?带着这四个视角去看每一个细节,知识才能内化为认知。

m0_46644103的博客 261

威纶通触摸屏配方宏指令实战手册

威纶通触摸屏-宏指令版配方功能威纶通触摸屏配方宏指令程序,MT8071iE触摸屏具有新增配方功能具有修改配方功能具有删除配方功能具有查找配方功能利用宏指令程序来控制,可宏指令注释清晰,方便理解程序。配方数据列表的地址,通过索引寄存器LW-9200,来实现变址,从而切换数据列表页面。附上宏指令配方分配表。在工业现场混过的都懂,配方功能就是触摸屏的命根子。今天咱们拿MT8071iE开刀,手把手整一套不依赖系统自带功能的纯宏指令配方方案。直接上硬菜!。

qq_58982825的博客 617

《备考信息系统项目管理师》 - 专栏介绍和目录

本专栏会持续详细梳理软考高级信息系统项目管理师(高项)的考点、所有历年真题(包括综合知识、案例分析、论文)等,有论文专项,预测模拟题等内容。需要的可以先订阅下哦。

数据知道的博客 2万+

威纶通宏开机后使用初始化宏指令_维纶触摸屏常用设置与重要指令

内容:(一)配方(二)欧姆龙PLC标签的设定和使用(三)一些常用宏指令1.常用系统参数■ Selection显示当前所选择配方记录的索引编号。索引编号从 0 开始计算,若点选第一笔记录,Selection 的数值将显示为 0,依此类推。当 [Selection] 的值改变时,相对应的寄存器也会跟着改变。■ Count显示所有配方记录的笔数。■ Command输入特定的数值可对选择的配方数据下执行命...

weixin_39928686的博客 4118

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: STM32F4的外部SRAM_原理部分
下一篇: 威纶通常用寄存器
oshan2012
博客等级 码龄15年 300粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oshan2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值