C#环境用PCHMI操作PLC方法

PCHMI是一款免费的上位机组态控件。可以用于:上位机组态、上位机通讯、机器视觉与PLC通讯、SCADA与MES数据交互等功能。内容来源PCHMI.COM
下面是争对那些有一定C#基础,需要做二次开发的上位机工程师,整理的一些C#操作PLC的方法。


【C#向寄存器地址写数据方法】
这里采用的上位机组态控件是PCHMI.DLL,使用语言是C#。下面的方法主要用于操作用户U寄存器地址,比如PCHMI.REG.SET_INT16(0, "U00", 1)就是向第一个设备"U00"的用户地址写入1。当然也可以是PLC的寄存器地址,只不过与之前使用的PCHMI.REG.SEND_INT16(0, "DB0.0", 1)区别就是不会将数据发送到PLC,可以在离线状态下模拟用。

下面列出的是向U寄存器地址写数据的一些方法,方便那些有一定C#基础,需要二次开发的人使用。

//PLC或设备编号, 设备地址, 值
PCHMI.REG.SET_WORD(0, "U00", 1);
PCHMI.REG.SET_WORDs(0, "U00",new UInt16[] {1 ,2,3} );
PCHMI.REG.SET_BIT(0, "U00.0", 1);
PCHMI.REG.SET_DWORD(0, "U00", 1);
PCHMI.REG.SET_DWORD(0, "U00", 1);
PCHMI.REG.SET_LWORD(0, "U00", 1);
PCHMI.REG.SET_INT16(0, "U00", 1);
PCHMI.REG.SET_INT32(0, "U00", 1);
PCHMI.REG.SET_INT64(0, "U00", 1);
PCHMI.REG.SET_F32(0, "U00", 9.865f);
测试方法,参考"上位机开发 01-第一个HELLO WORLD程序"视频教程,选择你要控制的PLC,然后按照视频教程连接好PLC的通讯。再到主界面上拖出一个button按钮控件,在button按钮控件的Click事件里面复制上面其中一行代码
例子:向第一个设备,地址为"U00"写入一个浮点数为9.875的值
private void button_Click(object sender, EventArgs e){PCHMI.REG.SEND_SIEMENS_STRING(0, "U00", 9.865f);}


【C#读取PLC数据方法】
这里采用的工控组态控件是PCHMI.DLL,使用语言是C#,下面列出的是读取PLC数据的一些方法。
//读取PLC指定地址的一个或连续多个数据
//PLC或设备编号, 设备地址, +长度
PCHMI.REG.GET_BIT(0, "U0.0");
PCHMI.REG.GET_INT16(0, "U00");
PCHMI.REG.GET_INT32(0, "U00");
PCHMI.REG.GET_UINT16(0, "U00");
PCHMI.REG.GET_UINT32(0, "U00");
PCHMI.REG.GET_F32(0, "U00");
PCHMI.REG.GET_F32s(0, "U00",2);
PCHMI.REG.GET_STRING(0, "U00",10);
PCHMI.REG.GET_SIEMENS_STRING(0, "U00", 10);
PCHMI.REG.GET_INT16s(0, "U00", 10);
PCHMI.REG.GET_INT32s(0, "U00", 10);
PCHMI.REG.GET_UINT16s(0, "U00",10);
PCHMI.REG.GET_UINT32s(0, "U00", 10);
例子:读取第一个松下PLC,地址为"DT00"里面的值
private void button_Click(object sender, EventArgs e){MessageBox.Show(PCHMI.REG.GET_UINT16(0, "DT00").ToString());}


【C#控制PLC方法】
//Send_Control(PLC或设备编号, 设备地址, 操作方法, 值)
PCHMI.DCON.Send_Control(0, "D0.0", "置位", "");
PCHMI.DCON.Send_Control(0, "D0.0", "复位", "");
PCHMI.DCON.Send_Control(0, "D0.0", "瞬动", "");
PCHMI.DCON.Send_Control(0, "D0.0", "反转", "");
PCHMI.DCON.Send_Control(0, "D00", "字加", "1");
PCHMI.DCON.Send_Control(0, "D00", "字减", "1");
PCHMI.DCON.Send_Control(0, "D00", "双字加", "1");
PCHMI.DCON.Send_Control(0, "D00", "双字减", "1");
PCHMI.DCON.Send_Control(0, "D00", "字写入", "1");
PCHMI.DCON.Send_Control(0, "D00", "双字写入", "1");
PCHMI.DCON.Send_Control(0, "D00", "多字写入", "1,2,3");
PCHMI.DCON.Send_Control(0, "D00", "字符串写入", "HELLO WORLD!");
例子:
private void button_Click(object sender, EventArgs e)
{
  PCHMI.DCON.Send_Control(0, "Y0", "反转", "");//控制0号PLC的Y0输出点取反
}

C#.NET向PLC写数据方法
工控极客2020-05-05 12:23:29
这里采用的工控组态控件是PCHMI.DLL,使用语言是C#,在其它语言里面叫函数的在c#里面都叫方法。下面列出的是向PLC写数据的一些方法。

//PLC或设备编号, 设备地址, 操作方法, 值

PCHMI.REG.SEND_WDs(0, "D00", new UInt16[] {1,2,3 });//向连续PLC地址D00写入:1,2,3

//还可以用下面的方法
PCHMI.REG.SEND_BIT(0, "D0.0", 1);
PCHMI.REG.SEND_INT16(0, "D00", 1);
PCHMI.REG.SEND_UINT16(0, "D00", 1);
PCHMI.REG.SEND_INT32(0, "D00", 1);
PCHMI.REG.SEND_UINT32(0, "D00", 1);
PCHMI.REG.SEND_F32(0, "D00", 0.1f);
PCHMI.REG.SEND_STRING(0, "D00", "HELLO WORLD!");
PCHMI.REG.SEND_SIEMENS_STRING(0, "D00", "HELLO WORLD!");

//还可以用下面的方法
new PCHMI.DCON().SendValue(0, "D0.0", "BIT", "1");
new PCHMI.DCON().SendValue(0, "D00", "INT16", "-1");
new PCHMI.DCON().SendValue(0, "D00", "INT32", "-1");
new PCHMI.DCON().SendValue(0, "D00", "UINT16", "1");
new PCHMI.DCON().SendValue(0, "D00", "UINT32", "1");
new PCHMI.DCON().SendValue(0, "D00", "F32", "0.1");
new PCHMI.DCON().SendValue(0, "D00", "STRING", "HELLO WORLD!");
new PCHMI.DCON().SendValue(0, "D00", "SIEMENS_STRING", "HELLO WORLD!");

测试方法,参考"工业组态"系列视频教程,选择你要控制的PLC,然后按照视频教程连接好PLC的通讯。再到主界面上拖出一个button按钮控件,在button按钮控件的Click事件里面复制上面其中一行代码

例子:向第一个西门子PLC,地址为"DB0.0"写入西门子格式的字符串
private void button_Click(object sender, EventArgs e)
{
  PCHMI.REG.SEND_SIEMENS_STRING(0, "DB0.0", "HELLO WORLD!");
}

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Visual Graph是一套完整的图形编程语言,能够非常方便地建造各种基于图形的界面, 制作各种行业专用的图形控件,还可以制作丰富多样的报表。她能够和其他开发语言实现互相调用,弥补这些语言在图形(或报表)处理方面的不足。曾用她独立开发完成容量达200兆的电力调度自动化系统!用她开发的报表生成系统非常酷,能在预览界面下自由实现编辑,能有无数级别Undo和Redo,完全中国式! 软件的特点是: 一、丰富的制图功能: 能画折线、矩形、椭圆、圆弧、文字框等最基本图形元件,具备简单的开放性接口,能插入其他编程语言中的各种可视化组件,诸如按钮、列表框、图片等。图形单元具有多种可变属性,线条的颜色、类型、宽度、箭头;背景的颜色、网纹;文字框的字型、字号、颜色、下划线类型、四边的类型、文字横向、纵向的对齐方式。编辑能力包括移动、剪贴、拷贝、粘贴、删除、层次、智能排版等,并具有多级Undo和Redo功能。表格功能包括分割、合并文字单元、插入、删除表格行、丰富的查找与替换、智能斜线、多种数字修饰方式、多种序列填充模式、把一组文字框定义成数组方便计算。视图能力包括窗口无级缩放、用来方便单元定位的栅格、放在工作区内的打印纸可以方便地改变放大率和打印区域。二、中国式的表格特点: 表格是典型的中国式,不同于国外电子表格,这里没有行列的概念,而代之以“单元组”的概念,不论其中的单元是否在同行、同列,表中任何一组单元都能用鼠标拖动到其他位置,单元组间可以建立任何复杂的算法,所以处理中国式的复杂表格例如表中套表最为简单。在表格被插入具体应用程序中后,仍然允许编辑某些文字单元。图形无级缩放,无需“模拟显示”,完全所见所得的编辑见面。可以用鼠标拖动打印纸,改变放大率和打印区域。三、能够开发基于图形的控件: Visual Graph能够轻松制作各种图形元件,并把它们放入元件库中以便重复使用,通过传递一系列数据参数,改变元件的反应。四、强大的编程能力: 能够编写各种算法,能够处理鼠标、键盘消息。例如在视图文件初始化时调用OnCreate、释放时调用OnDestroy、单击左键时调用OnClick等等。这里所用的语言采用最古典、最简单的语法结构,具有简单的数据类型,内置上百个常用函数(数学运算、图形、字符串、系统控制等),此外支持外挂函数库,使它能够直接调用其他开发环境提供的丰富功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xcwzj123

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

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

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

打赏作者

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

抵扣说明:

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

余额充值