我正在编写一个测试程序,用于检查Okuma机器上的Barfeeder接口。我需要检查某些输入和输出的状态。我对GetBitIO方法有点困惑。例如,我想检查0104位7位的iIN24输入的状态。
代码:
private CIO IO;
IO = new CIO();
private void button1_Click(object sender, EventArgs e)
{
string IOin24 = IO.GetBitIO(Input, 0104, 7).ToString();
}上面的行使用当前上下文中不存在名称的错误来测试“输入”。
private CIO IO;
IO = new CIO();
private void button1_Click(object sender, EventArgs e)
{
string IOin24 = IO.GetBitIO(104, 7, 0).ToString();
}试着对这一行做个小改动。
string IOin24 = IO.GetBitIO(0, 7, 104).ToString();上面的行从api中获得整个命令的错误。错误声明它不能从int转换为Okuma.CLDATAPI.Enumerations.BitsEnum。这一行类似于我如何在没有问题的情况下获得VB.Net的数据。
VB代码以前用来得到数控复位按钮(ipNCRT)在地址0位2.
Private Sub RadioButton4_Checked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles RadioButton4.Checked
TextBox2.Text = IO.GetBitIO(0, 2, 0).ToString
End Sub阅读车床API的帮助,我得到以下规则。
参数:
C# public OnOffStateEnum GetBitIO(IOTypeEnum enIO,int intAddressIndex,BitsEnum enBits); enIO I/O变量类型。参数的值来自Okuma.CLDATAPI.Enumerations.IOTypeEnum枚举。ntAddressIndex逻辑I/O地址索引 enBits位号。参数的值来自Okuma.CLDATAPI.Enumerations.BitsEnum枚举。
发布于 2013-09-16 17:07:22
基本问题是,在关闭Option Strict的情况下编译了VB程序,它允许您将原始整数传递到一个期望接受Enum的函数中。
我没有机器制造商给你的具体库的手册,但是总的想法是:
string IOin24 = IO.GetBitIO(IOTypeEnum.Input, 0104, BitsEnum.Bit4).ToString();我刚刚为枚举成员编出了名称,但是如果您阅读了您在软件中获得的文档(甚至只是键入IOTypeEnum.,看看IntelliSense是否给出了一个列表),以找出您要传递的整数对应的强类型成员是什么。
您还需要确保包含了所讨论的程序集--即:
using Okuma.CLDATAPI.Enumerations;应该出现在您的类文件的顶部某处。
https://stackoverflow.com/questions/18833426
复制相似问题