技术论坛

WinCC数字小键盘

作者 主题
侠士

经验值: 1074
发帖数: 25
精华帖: 2
主题:【分享】WinCC数字小键盘
推荐帖


只看楼主 楼主 2021-09-05 09:54:31

    一台设备改造,操作界面是一台西门子一体机电脑,触摸屏,XP系统WinCC 7.0,没有配置鼠标键盘。原来的参数设置是通过设置激活屏幕键盘来进行输入,现场反馈操作很别扭经常容易点错,后来都是通过点击界面上组态的“+”/“-”按钮来实现设定值的增大或减小,还好需要经常修改的参数不多。

    改造基于现有硬件,重新组态画面。首先要解决的就是数字输入的问题。在WinCC全局库中有这么个数字键盘是这个样子的。

     只可惜这个键盘只能输入整数,不能输入浮点数,实际情况是画面上大部分数据都是浮点数,所以是不能直接使用的。但是全局库里的这个模板其实挺不错的,于是拿来改造一下吧,重新编辑了下界面,改造成下面这个样子。增加了几个按钮,可以输入小数、负数等,基本满足了我的需求了。

     其实这个键盘的原理就是通过按钮点击后将所有字符拼接为一个字符串,然后再将字符串转换为数值,将这个数值直接赋值给WinCC中的变量。这里面有一个问题就是,如果IO域组态了上限和下限,由于是直接赋值给变量,所以上下限是不起作用的,同时会导致IO域上数值超限而显示***。原库里是输出直接连接变量的,这样其实不方便重复调用键盘,因此将其改成了变量的间接调用,这样直接将io域的关联的变量名传给这个小键盘就可以了。

附上pdl文件

Box_NumKeyboard.zip


   使用说明:

1、 在WinCC中创建3个内部变量,如下

其中VarName用于存储IO域关联的变量的名称

LimitMax和LimitMin分别存储IO域的设定的最大值和最小值

2、 在画面中,添加一个“画面窗口”,命名为“PIC”,做为键盘弹窗的容器。

3、 在IO域中关联显示的变量,如下图



4、 设置IO域的限幅值“Limits”



此处不要使用默认值,否则会有问题。

5、 在IO域的鼠标动作中添加脚本,弹出数字键盘的窗口,脚本如下

#pragma option(mbcs)

#define PictureName "Box_NumKeyboard.PDL"

#define HEIGHT 800 //画面高度

int x,y,w,h;

char* Tag=NULL;

Tag=GetLinkedVariable(lpszPictureName,lpszObjectName,"OutputValue");//Return-Type: char*

SetTagChar("VarName",Tag);//获取变量名称

SetTagFloat("LimitMax",(float)GetLimitMax(lpszPictureName,lpszObjectName)); //输入框最大限制值

SetTagFloat("LimitMin",(float)GetLimitMin(lpszPictureName,lpszObjectName)); //输入框最小限制值

SetVisible(lpszPictureName,"PIC",0); //"PIC"为画面窗口对象名称

SetPictureName(lpszPictureName,"PIC",PictureName); //Return-Type: BOOL


x= GetLeft(lpszPictureName,lpszObjectName); //获取IO域坐标

y= GetTop(lpszPictureName,lpszObjectName); //获取IO域坐标

w=GetWidth(lpszPictureName,lpszObjectName); //获取IO域宽度

if(x-280<0)

     SetLeft(lpszPictureName,"PIC",x+w+20); //设置弹窗位置

else

     SetLeft(lpszPictureName,"PIC",x-280); //设置弹窗位置

if(y+300>HEIGHT)

     SetTop(lpszPictureName,"PIC",HEIGHT-320); //设置弹窗位置

else

     SetTop(lpszPictureName,"PIC",y);  //设置弹窗位置

SetVisible(lpszPictureName,"PIC",1); //显示窗口


运行效果如下:


    后来发现,在Win10系统下激活屏幕键盘的效果也很漂亮,比XP下运行情况好了很多,这种小键盘的使用应该也就不需要了吧。

?



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1714119&b_id=5&s_id=0&num=10

至圣

经验值: 18884
发帖数: 2107
精华帖: 0
回复:WinCC数字小键盘


只看楼主 1楼 2021-09-05 10:31:44

楼主厉害了


 
以下网友喜欢您的帖子:

  
至圣

经验值: 18401
发帖数: 2409
精华帖: 1
回复:WinCC数字小键盘


只看楼主 2楼 2021-09-05 11:55:21

这个效果的确不错


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8094
发帖数: 1308
精华帖: 6
回复:WinCC数字小键盘


只看楼主 3楼 2021-09-05 14:06:57

记得系统自带的,启用输入键盘就可以了呀?


养活一团春意思,撑起两根穷骨头
以下网友喜欢您的帖子:

  
侠士

经验值: 1074
发帖数: 25
精华帖: 2
回复:WinCC数字小键盘


只看楼主 楼主 4楼 2021-09-05 16:19:55
以下是引用贤贤易色在2021-09-05 14:06:57的发言 >3楼

记得系统自带的,启用输入键盘就可以了呀?

是的,就是为了在XP系统下替代系统的屏幕键盘。Win10下屏幕键盘个人觉得已经很好了,就没有必要替代了。
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 5478
发帖数: 419
精华帖: 1
回复:WinCC数字小键盘


只看楼主 5楼 2021-09-08 10:29:47

 楼主自己改造的,感觉很漂亮!


提供低压配电柜,PLC控制柜成套 惠州:15014975392(微信同号)
以下网友喜欢您的帖子:

  
至圣

经验值: 10575
发帖数: 1794
精华帖: 0
回复:WinCC数字小键盘


只看楼主 6楼 2021-09-15 21:35:56


楼主太厉害了。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 5686
发帖数: 767
精华帖: 1
回复:WinCC数字小键盘


只看楼主 7楼 2021-09-15 21:36:55


值得学习。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2232
发帖数: 419
精华帖: 0
回复:WinCC数字小键盘


只看楼主 8楼 2021-10-18 14:33:43

楼主做的很漂亮,颜色搭配,整体布局比例都很到位。审美感很强。


 
以下网友喜欢您的帖子:

  
新手

经验值: 39
发帖数: 1
精华帖: 0
回复:WinCC数字小键盘


只看楼主 9楼 2022-02-27 13:13:16


但就是输入的值按“ok”后就自动为0了,请楼主赐教


 
以下网友喜欢您的帖子:

  
游侠

经验值: 341
发帖数: 43
精华帖: 0
回复:WinCC数字小键盘


只看楼主 10楼 2023-06-02 16:01:46

大佬 能否给个联系方式 有个问题想请教下


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
WinCC数字小键盘
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。