VENUS Questions!

We are doing a lot of peircing and we are usign HHS with 3D printed adapter and it works awesome for both 96 and 384 well plate

1 Like

Can someone fill me in on how iSWAP complex movement parameters like retract distance and lift-up height work? Are these “collision-safe”, or are they like firmware commands in that there is collision potential? Thank you.

They’re more like firmware commands and there is the possibility of collision. So if you use a complex movement with an integration such as a stacker or handoff where there is a cutout in the plexi, the system won’t know there is a shelf or obstruction above it. You have the define the proper retract and lift-up height to avoid any obstacle.

Ok, thanks!

Hello @NickHealy_Hamilton @DanHartman_Hamilton @EricSindelar_Hamilton @WilliamCham_Hamilton,

Do any of you know how to fix the following HSL syntax error?

The HSL line it’s referring to is the last one in the file:

@max_gildemeister - If you have checksum verification disabled, you should be able to delete that line (the last line of the HSL file is the checksum) and save. When reopening via HSL editor, the checksum should be automatically recreated and updated.

Checksum verification can be toggled via the security settings in your system configuration editor

2 Likes

Hi,
I have a question about the Executor Object in HSL. I’ve seen that code in a library provided by Hamilton :

`function GetWorkflowDuration() variable
{
object executor;
object scheduler;
variable workflowStart(0);
variable workflowEnd(0);
variable workflowLeft(0);
variable workflowRight(0);

**executor = GetExecutorObject();**

**

executor.GetObject2(“{C2D3E204-F6B4-4F7C-A03F-254FAF2260DB}”, scheduler);**

scheduler.GetWorkflowDuration(workflowStart, workflowEnd, workflowLeft, workflowRight);
return(ToSeconds(workflowEnd - workflowStart));
}`

I wonder if you have documentation on that piece of code and if there’s a way to know more about it. My idea would be to retrieve the task specific starting time and ending time when scheduling a process. (and not only the final workflow duration).
PS : I’m using the venus dynamic scheduler.

Thank you,

@Yass - I have not seen this function or library before. Could you please provide more info on this library you are referring to?

Sure,
It’s a library that was provided by our Hamilton field application engineer.
here’s the full code :

private function ToSeconds(variable date) variable
{
	object	scriptControl;
	variable strDate;

	strDate = FStr(date);
	scriptControl.CreateObject("MSScriptControl.ScriptControl");
	scriptControl.Language = "VBScript";

	return(scriptControl.Eval("Second(" + strDate + ")") +
			60 * scriptControl.Eval("Minute(" + strDate + ")") +
			3600 * scriptControl.Eval("Hour(" + strDate + ")"));
}
private function DateDifference(variable date1, variable date2) variable
{
   object scriptControl;
   variable strDate1;
   variable strDate2;

   strDate1=FStr(date1);
   strDate2=FStr(date2);
   scriptControl.CreateObject("MSScriptControl.ScriptControl");
   scriptControl.Language="VBScript";

   return(scriptControl.Eval("DateDiff(\"s\","+strDate1+","+strDate2+")"));
}
// Returns the workflow duration in seconds.
function GetWorkflowDuration() variable
{
	object executor;
	object scheduler;
	variable workflowStart(0);
	variable workflowEnd(0);
	variable workflowLeft(0);
	variable workflowRight(0);

	executor = GetExecutorObject();
	executor.GetObject2("{C2D3E204-F6B4-4F7C-A03F-254FAF2260DB}", scheduler);
	scheduler.GetWorkflowDuration(workflowStart, workflowEnd, workflowLeft, workflowRight);
	return(ToSeconds(workflowEnd - workflowStart));
}

It has only this function that gives the workflow total scheduled duration (very useful). From my understanding it’s creating an Executor object from a registry key. When I look up that registry key I see that it’s linked to VenusScheduler.
But I honestly have no idea how the registry key was found nor how the object works or if there’s other objects available.

Yassine

Hi, I’ll respond to my own post in case it helps someone.
I’ve realized they are just COM interfaces exposed, so we can view the interfaces with an OLE viewer software and get access to the list of available methods.
Thanks,

Ah people have experience with the schedulers in venus! I’d like to do more with this, do you have any documentation/examples or anything you use to work with them? The help with the functions aren’t the clearest…

Amazing thread! @EricSindelar_Hamilton - how to we perform firmware upgrades? We’re running into this error on a couple STARlets we got at auction & can’t get them to run via Hamilton Run Control due to this error: (it still executes direct firmware commands with no issues)

Firmware check failed at modul Main module. version on instrument is 6.1S B 2009-03-25 (0x29 - 0x1 - 0x9)

You can reach out to the Hamilton Service Hotline at 1-800-527-5269 or roboticservice@hamiltoncompany.com to determine what support we can provide. We do not provide firmware or upgrades free of charge and without the oversight of trained personnel. Uploading incorrect or incompatible firmware could damage the system.

Can we get a link for people alright with damaging their systems? Just so others who google this problem in the future can solve it without asking for help from someone with access to the right files

1 Like

I’m sorry, but it is not our policy to share firmware as it creates too much risk due to misuse.

1 Like

How about sharing copies of Venus 1 or 2 instead of automating your firmware install process? This way nobody is sad they bricked their robot!

1 Like

See below!

6 Likes

This is massive! Highly appreciated @EricSindelar_Hamilton

4 Likes

@EricSindelar_Hamilton , Thanks again for all the help here!

I’m working with the HSLJson library, and it seems like my help files are missing the Validate function. Can you please elaborate a bit about the inputs it expect? specifically Schema versions, as well as the outputs (are errors returned as an array or string? it clearly expects a string, but I get a weird return value there saying ‘Can not convert Array to Boolean’)

Thanks!

As far as I remember the Json library us just a wrapper for the Json.net class.
Maybe you can find some information in their documentation:

https://www.newtonsoft.com/json/help/html/R_Project_Documentation.htm

1 Like